aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@baylibre.com>2024-03-11 00:57:51 +0100
committerThomas Schwinge <tschwinge@baylibre.com>2024-03-11 00:57:51 +0100
commit20bb2dac9e47ac35252f5166f22856f73cd40d5f (patch)
tree4297df41b2c3e95fe5f1f435a735c5c2ed05f1f0 /gcc
parenta88f4804345de28d0e3ea79fb7c1acb28a7fe453 (diff)
parent094091958654bae07a9ad53a63fd69468efcd3e3 (diff)
downloadgcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.zip
gcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.tar.gz
gcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.tar.bz2
Merge commit 'ce7a757fd9ecb99c4f54cfde5cf5ef9a9e7819fc^' into HEAD
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog872
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/ada/ChangeLog165
-rw-r--r--gcc/ada/accessibility.adb92
-rw-r--r--gcc/ada/accessibility.ads9
-rw-r--r--gcc/ada/atree.adb210
-rw-r--r--gcc/ada/bindgen.adb10
-rw-r--r--gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst22
-rw-r--r--gcc/ada/einfo-utils.adb6
-rw-r--r--gcc/ada/einfo-utils.ads6
-rw-r--r--gcc/ada/exp_aggr.adb21
-rw-r--r--gcc/ada/exp_ch6.adb20
-rw-r--r--gcc/ada/exp_ch9.adb38
-rw-r--r--gcc/ada/exp_util.adb268
-rw-r--r--gcc/ada/exp_util.ads17
-rw-r--r--gcc/ada/frontend.adb2
-rw-r--r--gcc/ada/gcc-interface/utils.cc2
-rw-r--r--gcc/ada/gen_il-gen-gen_entities.adb27
-rw-r--r--gcc/ada/gen_il-types.ads1
-rw-r--r--gcc/ada/inline.adb1
-rw-r--r--gcc/ada/sem.adb1
-rw-r--r--gcc/ada/sem.ads3
-rw-r--r--gcc/ada/sem_aggr.adb5
-rw-r--r--gcc/ada/sem_ch6.adb30
-rw-r--r--gcc/ada/sem_ch8.adb5
-rw-r--r--gcc/ada/sem_ch8.ads5
-rw-r--r--gcc/ada/sem_res.adb3
-rw-r--r--gcc/ada/sem_util.adb21
-rw-r--r--gcc/ada/sem_util.ads3
-rw-r--r--gcc/analyzer/ChangeLog77
-rw-r--r--gcc/analyzer/analyzer.cc2
-rw-r--r--gcc/analyzer/analyzer.h1
-rw-r--r--gcc/analyzer/checker-event.h4
-rw-r--r--gcc/analyzer/checker-path.h17
-rw-r--r--gcc/analyzer/diagnostic-manager.cc91
-rw-r--r--gcc/analyzer/diagnostic-manager.h53
-rw-r--r--gcc/analyzer/engine.cc44
-rw-r--r--gcc/analyzer/exploded-graph.h9
-rw-r--r--gcc/analyzer/feasible-graph.cc7
-rw-r--r--gcc/analyzer/feasible-graph.h9
-rw-r--r--gcc/analyzer/infinite-recursion.cc6
-rw-r--r--gcc/analyzer/region-model.cc46
-rw-r--r--gcc/analyzer/region-model.h10
-rw-r--r--gcc/c/ChangeLog33
-rw-r--r--gcc/c/c-decl.cc26
-rw-r--r--gcc/c/c-parser.cc135
-rw-r--r--gcc/c/c-tree.h1
-rw-r--r--gcc/c/c-typeck.cc282
-rw-r--r--gcc/config.gcc9
-rw-r--r--gcc/config/aarch64/aarch64-cores.def6
-rw-r--r--gcc/config/aarch64/aarch64-sve.md15
-rw-r--r--gcc/config/aarch64/aarch64-tune.md2
-rw-r--r--gcc/config/aarch64/aarch64.cc605
-rw-r--r--gcc/config/aarch64/aarch64.h44
-rw-r--r--gcc/config/aarch64/aarch64.md2
-rw-r--r--gcc/config/aarch64/predicates.md4
-rw-r--r--gcc/config/i386/i386.cc4
-rw-r--r--gcc/config/loongarch/loongarch-def.c4
-rw-r--r--gcc/config/loongarch/loongarch-driver.h42
-rw-r--r--gcc/config/loongarch/loongarch.h50
-rw-r--r--gcc/config/loongarch/loongarch.md20
-rw-r--r--gcc/config/loongarch/t-linux66
-rw-r--r--gcc/config/loongarch/t-loongarch2
-rw-r--r--gcc/config/loongarch/t-multilib68
-rw-r--r--gcc/config/nvptx/nvptx.h5
-rw-r--r--gcc/config/riscv/autovec-opt.md313
-rw-r--r--gcc/config/riscv/autovec-vls.md313
-rw-r--r--gcc/config/riscv/autovec.md326
-rw-r--r--gcc/config/riscv/bitmanip.md2
-rw-r--r--gcc/config/riscv/crypto.md161
-rw-r--r--gcc/config/riscv/predicates.md6
-rw-r--r--gcc/config/riscv/riscv-builtins.cc14
-rw-r--r--gcc/config/riscv/riscv-cmo.def16
-rw-r--r--gcc/config/riscv/riscv-ftypes.def23
-rw-r--r--gcc/config/riscv/riscv-protos.h25
-rw-r--r--gcc/config/riscv/riscv-scalar-crypto.def96
-rw-r--r--gcc/config/riscv/riscv-selftests.cc4
-rw-r--r--gcc/config/riscv/riscv-string.cc594
-rw-r--r--gcc/config/riscv/riscv-v.cc153
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-bases.cc125
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-bases.h1
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-functions.def1
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-shapes.cc50
-rw-r--r--gcc/config/riscv/riscv-vector-builtins-shapes.h1
-rw-r--r--gcc/config/riscv/riscv-vector-builtins.cc12
-rw-r--r--gcc/config/riscv/riscv-vector-costs.cc509
-rw-r--r--gcc/config/riscv/riscv-vector-costs.h21
-rw-r--r--gcc/config/riscv/riscv-vsetvl.cc43
-rw-r--r--gcc/config/riscv/riscv-vsetvl.def4
-rw-r--r--gcc/config/riscv/riscv.cc89
-rw-r--r--gcc/config/riscv/riscv.md82
-rw-r--r--gcc/config/riscv/riscv.opt16
-rw-r--r--gcc/config/riscv/t-riscv9
-rw-r--r--gcc/config/riscv/thead.md16
-rw-r--r--gcc/config/riscv/vector-iterators.md260
-rw-r--r--gcc/config/riscv/vector.md711
-rw-r--r--gcc/config/riscv/zc.md102
-rw-r--r--gcc/config/riscv/zicond.md8
-rw-r--r--gcc/config/rs6000/vsx.md17
-rw-r--r--gcc/config/s390/s390-builtins.def80
-rw-r--r--gcc/config/s390/s390.cc6
-rw-r--r--gcc/config/xtensa/predicates.md2
-rw-r--r--gcc/config/xtensa/xtensa.cc84
-rw-r--r--gcc/config/xtensa/xtensa.h1
-rw-r--r--gcc/config/xtensa/xtensa.md132
-rw-r--r--gcc/cp/ChangeLog11
-rw-r--r--gcc/cp/class.cc2
-rw-r--r--gcc/cp/pt.cc31
-rw-r--r--gcc/cp/typeck2.cc1
-rw-r--r--gcc/dbgcnt.def1
-rw-r--r--gcc/diagnostic-event-id.h5
-rw-r--r--gcc/diagnostic-format-sarif.cc86
-rw-r--r--gcc/diagnostic-path.h55
-rw-r--r--gcc/diagnostic-show-locus.cc16
-rw-r--r--gcc/diagnostic.cc78
-rw-r--r--gcc/diagnostic.h3
-rw-r--r--gcc/doc/gm2.texi7
-rw-r--r--gcc/doc/gty.texi7
-rw-r--r--gcc/doc/invoke.texi29
-rw-r--r--gcc/doc/sourcebuild.texi13
-rw-r--r--gcc/dwarf2cfi.cc9
-rw-r--r--gcc/dwarf2out.h1
-rw-r--r--gcc/emit-rtl.cc24
-rw-r--r--gcc/fold-const.cc7
-rw-r--r--gcc/fortran/ChangeLog26
-rw-r--r--gcc/fortran/gfortran.h22
-rw-r--r--gcc/fortran/parse.cc3
-rw-r--r--gcc/fortran/symbol.cc59
-rw-r--r--gcc/fortran/trans-array.cc69
-rw-r--r--gcc/genmatch.cc2
-rw-r--r--gcc/ggc-common.cc23
-rw-r--r--gcc/ggc.h2
-rw-r--r--gcc/gimple-range-fold.cc123
-rw-r--r--gcc/gimplify.cc40
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--gcc/ira-costs.cc11
-rw-r--r--gcc/m2/ChangeLog136
-rw-r--r--gcc/m2/Make-lang.in19
-rw-r--r--gcc/m2/gm2-compiler/M2CaseList.def15
-rw-r--r--gcc/m2/gm2-compiler/M2CaseList.mod641
-rw-r--r--gcc/m2/gm2-compiler/M2Error.mod3
-rw-r--r--gcc/m2/gm2-compiler/M2GCCDeclare.mod13
-rw-r--r--gcc/m2/gm2-compiler/M2Options.def13
-rw-r--r--gcc/m2/gm2-compiler/M2Options.mod14
-rw-r--r--gcc/m2/gm2-compiler/M2Quads.def115
-rw-r--r--gcc/m2/gm2-compiler/M2Quads.mod144
-rw-r--r--gcc/m2/gm2-compiler/M2Range.mod37
-rw-r--r--gcc/m2/gm2-compiler/M2SymInit.mod117
-rw-r--r--gcc/m2/gm2-compiler/P3Build.bnf2
-rw-r--r--gcc/m2/gm2-compiler/PCSymBuild.mod34
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.def9
-rw-r--r--gcc/m2/gm2-compiler/SymbolTable.mod41
-rw-r--r--gcc/m2/gm2-gcc/m2expr.cc20
-rw-r--r--gcc/m2/gm2-gcc/m2expr.def15
-rw-r--r--gcc/m2/gm2-gcc/m2expr.h3
-rw-r--r--gcc/m2/gm2-gcc/m2options.h2
-rw-r--r--gcc/m2/gm2-lang.cc3
-rw-r--r--gcc/m2/gm2-libs-iso/TextIO.mod2
-rw-r--r--gcc/m2/lang.opt4
-rw-r--r--gcc/match.pd126
-rw-r--r--gcc/rtl.h2
-rw-r--r--gcc/rust/ChangeLog13
-rw-r--r--gcc/shrink-wrap.cc22
-rw-r--r--gcc/shrink-wrap.h1
-rw-r--r--gcc/testsuite/ChangeLog1057
-rw-r--r--gcc/testsuite/c-c++-common/analyzer/volatile-1.c18
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-11.c40
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-12.c49
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-14.c26
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-15.c28
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-16.c38
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-5.c60
-rw-r--r--gcc/testsuite/c-c++-common/gomp/allocate-9.c108
-rw-r--r--gcc/testsuite/c-c++-common/gomp/directive-1.c2
-rw-r--r--gcc/testsuite/g++.dg/eh/no-exceptions1.C19
-rw-r--r--gcc/testsuite/g++.dg/ext/integer-pack7.C38
-rw-r--r--gcc/testsuite/g++.dg/template/nontype12.C3
-rw-r--r--gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C4
-rw-r--r--gcc/testsuite/g++.target/nvptx/abi-nrv1.C (renamed from gcc/testsuite/g++.dg/abi/nvptx-nrv1.C)2
-rw-r--r--gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C (renamed from gcc/testsuite/g++.dg/abi/nvptx-ptrmem1.C)6
-rw-r--r--gcc/testsuite/g++.target/nvptx/nvptx.exp56
-rw-r--r--gcc/testsuite/g++.target/powerpc/altivec-19.C10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr111414-1.c13
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c51
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr107881-1.c115
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr111431-1.c39
-rw-r--r--gcc/testsuite/gcc.dg/Wstringop-overflow-47.c6
-rw-r--r--gcc/testsuite/gcc.dg/binop-andeq1.c12
-rw-r--r--gcc/testsuite/gcc.dg/binop-andeq2.c14
-rw-r--r--gcc/testsuite/gcc.dg/binop-notand1a.c4
-rw-r--r--gcc/testsuite/gcc.dg/binop-notand4a.c4
-rw-r--r--gcc/testsuite/gcc.dg/binop-notand7.c12
-rw-r--r--gcc/testsuite/gcc.dg/binop-notand7a.c12
-rw-r--r--gcc/testsuite/gcc.dg/bitint-37.c11
-rw-r--r--gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c72
-rw-r--r--gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c35
-rw-r--r--gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c18
-rw-r--r--gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c94
-rw-r--r--gcc/testsuite/gcc.dg/plugin/plugin.exp3
-rw-r--r--gcc/testsuite/gcc.dg/pr111303.c11
-rw-r--r--gcc/testsuite/gcc.dg/pr111407.c21
-rw-r--r--gcc/testsuite/gcc.dg/pr21643.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr96708-negative.c4
-rw-r--r--gcc/testsuite/gcc.dg/pr96708-positive.c1
-rw-r--r--gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c57
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr111387.c34
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/bool-13.c15
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/cmpbit-5.c51
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/cmpeq-4.c51
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c51
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/evrp10.c2
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/evrp6.c5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c3
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c22
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-2.c30
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/phi-opt-35.c13
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr111294.c32
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr111303.c15
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr59597.c8
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c6
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pr111397.c15
-rw-r--r--gcc/testsuite/gcc.dg/uninit-pred-9_b.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c50
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c91
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c63
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c91
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c121
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c149
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c150
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c48
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c51
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c51
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c51
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c49
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c52
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c54
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c35
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c35
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c47
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-4.c47
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c47
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c27
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c47
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c36
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c29
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c18
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c22
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c18
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c18
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c19
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c25
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c23
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c23
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c19
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c19
-rw-r--r--gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp52
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-34-big-array.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-34.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-35.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-117.c2
-rw-r--r--gcc/testsuite/gcc.target/aarch64/pr105928.c43
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c55
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c100
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c100
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c3
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-protector-8.c95
-rw-r--r--gcc/testsuite/gcc.target/aarch64/stack-protector-9.c33
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c33
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c13
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c6
-rw-r--r--gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c3
-rw-r--r--gcc/testsuite/gcc.target/i386/pr111340.c9
-rw-r--r--gcc/testsuite/gcc.target/loongarch/cmov_ii.c15
-rw-r--r--gcc/testsuite/gcc.target/loongarch/pr111334.c39
-rw-r--r--gcc/testsuite/gcc.target/loongarch/strict-align.c12
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c4460
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c485
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadd.c725
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadda.c785
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddi.c427
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c740
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.c485
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c560
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.c485
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvand.c155
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandi.c196
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandn.c125
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c680
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c560
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c770
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c635
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c317
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c134
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c185
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitset.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c405
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c130
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c64
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclo.c449
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclz.c504
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c485
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.c500
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c669
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c592
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c86
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c163
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextrins.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c911
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c152
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c95
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c446
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c977
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c759
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c675
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c872
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c340
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c361
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c424
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c924
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c627
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c1212
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c756
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c438
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c363
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c528
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c485
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c375
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c246
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffinth.c262
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c86
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c115
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c382
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c720
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c230
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c560
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c230
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c506
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c324
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c895
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c429
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c723
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c381
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c482
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c457
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c471
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c1565
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c511
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftintl.c1580
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c560
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvh.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvl.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c272
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c380
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c86
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c83
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c16
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c742
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c856
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c723
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c940
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c742
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c799
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c820
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c560
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c471
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c504
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c575
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c680
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c416
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c284
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c395
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c410
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c86
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c373
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c163
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsub.c647
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c635
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmul.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c590
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c590
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c605
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c470
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c440
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvneg.c526
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnor.c170
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnori.c152
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvor.c215
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvori.c141
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvorn.c245
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c501
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c575
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c526
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c130
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c388
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvprem.c20
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpremi.c20
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c380
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c536
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c471
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c20
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotr.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotri.c394
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c537
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c427
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseq.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseqi.c449
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c430
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c761
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c665
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c575
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-2.c590
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c438
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsll.c425
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslli.c416
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c339
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c455
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-2.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c548
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c416
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c504
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c455
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c545
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c725
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c471
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c500
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c636
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrl.c650
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrli.c405
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrln.c425
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c680
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c515
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c416
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c410
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c455
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssran.c905
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrani.c1235
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c905
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c1160
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrln.c965
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c1130
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c815
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c1160
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c425
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c695
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvst.c102
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c14
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsub.c590
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubi.c482
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.c440
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c695
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c620
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c185
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c163
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp42
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c4328
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c272
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadd.c416
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadda.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddi.c251
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c335
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c425
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c408
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c237
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vand.c159
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandi.c67
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandn.c129
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-1.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-2.c308
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c299
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c317
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclr.c461
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclri.c279
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrev.c407
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c336
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitsel.c109
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseli.c84
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitset.c371
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseti.c279
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsll.c83
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsrl.c55
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclo.c266
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclz.c265
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c299
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c254
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c342
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c182
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c83
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-2.c83
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextrins.c479
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c407
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c470
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c83
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c74
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c244
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c516
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c530
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c476
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c378
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c170
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c253
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c214
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c450
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c407
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c512
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c269
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c335
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c278
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-1.c161
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-2.c264
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-3.c102
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c76
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c185
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c251
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c381
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c200
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c335
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c155
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c230
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c196
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c381
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c230
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstp.c218
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c209
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c216
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c372
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-1.c349
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-2.c695
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-3.c1028
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-4.c345
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c488
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c452
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c327
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c353
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvh.c353
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c327
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c278
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c62
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c61
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c450
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c472
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c383
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c383
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c372
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c438
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c460
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-1.c317
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-2.c362
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c279
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c223
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-1.c434
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-2.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-1.c314
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-2.c216
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-1.c254
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-2.c254
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskgez.c119
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskltz.c321
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsknz.c104
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsub.c461
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c353
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c372
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmul.c282
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c434
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c245
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c272
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c282
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c308
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vneg.c321
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnor.c109
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnori.c91
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vor.c169
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vori.c123
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vorn.c109
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackev.c452
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackod.c461
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpcnt.c350
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickev.c362
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickod.c336
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c488
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpremi.c20
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c212
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplve.c300
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplvei.c293
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotr.c381
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotri.c294
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c335
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c345
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-1.c231
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c272
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c470
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c328
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c394
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c348
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c425
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-1.c290
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-2.c444
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-1.c258
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-2.c293
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsll.c254
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslli.c293
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c244
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c189
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-1.c434
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-2.c236
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-1.c328
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-2.c293
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsra.c344
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrai.c258
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsran.c290
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrani.c246
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrar.c354
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrari.c265
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarn.c236
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarni.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrl.c389
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrli.c328
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrln.c335
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlni.c281
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlr.c434
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlri.c300
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c164
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c686
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssran.c390
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrani.c679
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarn.c669
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarni.c848
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrln.c543
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlni.c668
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c470
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c597
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-1.c398
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-2.c408
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vst.c70
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsub.c381
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubi.c329
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c326
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c417
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c326
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c308
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxor.c79
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c67
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h54
-rw-r--r--gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c3
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c3
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c13
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c3
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c9
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c99
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c12
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c12
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h81
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c93
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-1.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-2.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-3.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-4.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-5.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c49
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c (renamed from gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-1.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c (renamed from gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-2.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c (renamed from gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-3.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c (renamed from gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-4.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c (renamed from gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-5.c)2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c29
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c30
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c32
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c34
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c27
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c30
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c30
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c29
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c30
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c31
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c35
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c35
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c36
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c35
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c37
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c32
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c29
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c28
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c33
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c1
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c28
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-1.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-2.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-3.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-4.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-5.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-6.c106
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h247
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c1
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c122
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c123
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c43
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c31
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c46
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c27
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c26
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c48
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c26
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-1.c69
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-2.c69
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-3.c69
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-1.c31
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-10.c50
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-11.c46
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-12.c30
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-13.c28
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-14.c26
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-15.c81
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-16.c75
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-17.c69
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-18.c63
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-19.c18
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-2.c29
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-20.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-21.c16
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-3.c27
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-4.c25
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-5.c18
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-6.c17
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-7.c16
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-8.c58
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-9.c54
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c654
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c654
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c337
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c337
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c178
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c178
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c53
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c337
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c178
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c1
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c27
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c20
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c24
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c22
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/no-honor-frm-1.c12
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/tuple_create.c123
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/base/vector-abi-9.c16
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f9041
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp45
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c24
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c57
-rw-r--r--gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c14
-rw-r--r--gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c38
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c38
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c57
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c38
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strcmp.c57
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c15
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c14
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbb-strlen.c19
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbc32.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbc64.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkb32.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkb64.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkc32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkc64.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkx32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zbkx64.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c93
-rw-r--r--gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c93
-rw-r--r--gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknd32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknd64.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/zkne32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zkne64.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknh-sha256-32.c10
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknh-sha256-64.c (renamed from gcc/testsuite/gcc.target/riscv/zknh-sha256.c)8
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c12
-rw-r--r--gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c8
-rw-r--r--gcc/testsuite/gcc.target/riscv/zksed32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zksed64.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zksh32.c4
-rw-r--r--gcc/testsuite/gcc.target/riscv/zksh64.c4
-rw-r--r--gcc/testsuite/gfortran.dg/bounds_check_fail_6.f9029
-rw-r--r--gcc/testsuite/gfortran.dg/pr110996.f9016
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/calendar.mod24
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/missingclause.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase.mod24
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase2.mod22
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase3.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp37
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/enumcase.mod24
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/enumcase2.mod22
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/subrangecase.mod24
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod22
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod23
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod21
-rw-r--r--gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp37
-rw-r--r--gcc/testsuite/lib/scanasm.exp76
-rw-r--r--gcc/testsuite/lib/target-supports.exp77
-rw-r--r--gcc/toplev.cc3
-rw-r--r--gcc/tree-diagnostic-path.cc432
-rw-r--r--gcc/tree-ssa-forwprop.cc29
-rw-r--r--gcc/tree-ssa-math-opts.cc12
-rw-r--r--gcc/tree-ssa-propagate.cc20
-rw-r--r--gcc/tree-ssa-sccvn.cc8
-rw-r--r--gcc/tree-ssa-threadbackward.cc60
-rw-r--r--gcc/tree-vect-slp.cc16
870 files changed, 193211 insertions, 3614 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 40c3674..5a78b16 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,875 @@
+2023-09-17 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
+
+ * config/rs6000/vsx.md (*vctzlsbb_zext_<mode>): New define_insn.
+
+2023-09-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111391
+ * config/riscv/autovec.md (@vec_extract<mode><vel>): Remove @.
+ (vec_extract<mode><vel>): Ditto.
+ * config/riscv/riscv-vsetvl.cc (emit_vsetvl_insn): Fix bug.
+ (pass_vsetvl::local_eliminate_vsetvl_insn): Fix bug.
+ * config/riscv/riscv.cc (riscv_legitimize_move): Expand VLS mode to scalar mode move.
+
+2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
+
+ * config/riscv/crypto.md (riscv_sha256sig0_<mode>,
+ riscv_sha256sig1_<mode>, riscv_sha256sum0_<mode>,
+ riscv_sha256sum1_<mode>, riscv_sm3p0_<mode>, riscv_sm3p1_<mode>,
+ riscv_sm4ed_<mode>, riscv_sm4ks_<mode>): Remove and replace with
+ new insn/expansions.
+ (SHA256_OP, SM3_OP, SM4_OP): New iterators.
+ (sha256_op, sm3_op, sm4_op): New attributes for iteration.
+ (*riscv_<sha256_op>_si): New raw instruction for RV32.
+ (*riscv_<sm3_op>_si): Ditto.
+ (*riscv_<sm4_op>_si): Ditto.
+ (riscv_<sha256_op>_di_extended): New base instruction for RV64.
+ (riscv_<sm3_op>_di_extended): Ditto.
+ (riscv_<sm4_op>_di_extended): Ditto.
+ (riscv_<sha256_op>_si): New common instruction expansion.
+ (riscv_<sm3_op>_si): Ditto.
+ (riscv_<sm4_op>_si): Ditto.
+ * config/riscv/riscv-builtins.cc: Add availability "crypto_zknh",
+ "crypto_zksh" and "crypto_zksed". Remove availability
+ "crypto_zksh{32,64}" and "crypto_zksed{32,64}".
+ * config/riscv/riscv-ftypes.def: Remove unused function type.
+ * config/riscv/riscv-scalar-crypto.def: Make SHA-256, SM3 and SM4
+ intrinsics to operate on uint32_t.
+
+2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
+
+ * config/riscv/riscv-builtins.cc (RISCV_ATYPE_UQI): New for
+ uint8_t. (RISCV_ATYPE_UHI): New for uint16_t.
+ (RISCV_ATYPE_QI, RISCV_ATYPE_HI, RISCV_ATYPE_SI, RISCV_ATYPE_DI):
+ Removed as no longer used.
+ (RISCV_ATYPE_UDI): New for uint64_t.
+ * config/riscv/riscv-cmo.def: Make types unsigned for not working
+ "zicbop_cbo_prefetchi" and working bit manipulation clmul builtin
+ argument/return types.
+ * config/riscv/riscv-ftypes.def: Make bit manipulation, round
+ number and shift amount types unsigned.
+ * config/riscv/riscv-scalar-crypto.def: Ditto.
+
+2023-09-16 Pan Li <pan2.li@intel.com>
+
+ * config/riscv/autovec-vls.md (xorsign<mode>3): New pattern.
+
+2023-09-15 Fei Gao <gaofei@eswincomputing.com>
+
+ * config/riscv/predicates.md: Restrict predicate
+ to allow 'reg' only.
+
+2023-09-15 Andrew Pinski <apinski@marvell.com>
+
+ * match.pd (zero_one_valued_p): Match a cast from a zero_one_valued_p.
+ Also match `a & zero_one_valued_p` too.
+
+2023-09-15 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111414
+ * match.pd (`(1 >> X) != 0`): Check to see if
+ the integer_onep was an integral type (not a vector type).
+
+2023-09-15 Andrew MacLeod <amacleod@redhat.com>
+
+ * gimple-range-fold.cc (fold_using_range::range_of_phi): Always
+ run phi analysis, and do it before loop analysis.
+
+2023-09-15 Andrew MacLeod <amacleod@redhat.com>
+
+ * gimple-range-fold.cc (fold_using_range::range_of_phi): Fix
+ indentation.
+
+2023-09-15 Qing Zhao <qing.zhao@oracle.com>
+
+ PR tree-optimization/111407
+ * tree-ssa-math-opts.cc (convert_mult_to_widen): Avoid the transform
+ when one of the operands is subject to abnormal coalescing.
+
+2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/riscv-protos.h (enum insn_flags): Change name.
+ (enum insn_type): Ditto.
+ * config/riscv/riscv-v.cc (get_mask_mode_from_insn_flags): Removed.
+ (emit_vlmax_insn): Adjust.
+ (emit_nonvlmax_insn): Adjust.
+ (emit_vlmax_insn_lra): Adjust.
+
+2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/autovec-opt.md: Adjust.
+ * config/riscv/autovec.md: Ditto.
+ * config/riscv/riscv-protos.h (enum class): Delete enum reduction_type.
+ (expand_reduction): Adjust expand_reduction prototype.
+ * config/riscv/riscv-v.cc (need_mask_operand_p): New helper function.
+ (expand_reduction): Refactor expand_reduction.
+
+2023-09-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/111411
+ * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): Require
+ the lower memory access to a mem-pair operand.
+
+2023-09-15 Yang Yujie <yangyujie@loongson.cn>
+
+ * config.gcc: Pass the default ABI via TM_MULTILIB_CONFIG.
+ * config/loongarch/loongarch-driver.h: Invoke MLIB_SELF_SPECS
+ before the driver canonicalization routines.
+ * config/loongarch/loongarch.h: Move definitions of CC1_SPEC etc.
+ to loongarch-driver.h
+ * config/loongarch/t-linux: Move multilib-related definitions to
+ t-multilib.
+ * config/loongarch/t-multilib: New file. Inject library build
+ options obtained from --with-multilib-list.
+ * config/loongarch/t-loongarch: Same.
+
+2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
+
+ PR target/111381
+ * config/riscv/autovec-opt.md (*reduc_plus_scal_<mode>):
+ New combine pattern.
+ (*fold_left_widen_plus_<mode>): Ditto.
+ (*mask_len_fold_left_widen_plus_<mode>): Ditto.
+ * config/riscv/autovec.md (reduc_plus_scal_<mode>):
+ Change from define_expand to define_insn_and_split.
+ (fold_left_plus_<mode>): Ditto.
+ (mask_len_fold_left_plus_<mode>): Ditto.
+ * config/riscv/riscv-v.cc (expand_reduction):
+ Support widen reduction.
+ * config/riscv/vector-iterators.md (UNSPEC_WREDUC_SUM):
+ Add new iterators and attrs.
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-event-id.h (diagnostic_thread_id_t): New typedef.
+ * diagnostic-format-sarif.cc (class sarif_thread_flow): New.
+ (sarif_thread_flow::sarif_thread_flow): New.
+ (sarif_builder::make_code_flow_object): Reimplement, creating
+ per-thread threadFlow objects, populating them with the relevant
+ events.
+ (sarif_builder::make_thread_flow_object): Delete, moving the
+ code into sarif_builder::make_code_flow_object.
+ (sarif_builder::make_thread_flow_location_object): Add
+ "path_event_idx" param. Use it to set "executionOrder"
+ property.
+ * diagnostic-path.h (diagnostic_event::get_thread_id): New
+ pure-virtual vfunc.
+ (class diagnostic_thread): New.
+ (diagnostic_path::num_threads): New pure-virtual vfunc.
+ (diagnostic_path::get_thread): New pure-virtual vfunc.
+ (diagnostic_path::multithreaded_p): New decl.
+ (simple_diagnostic_event::simple_diagnostic_event): Add optional
+ thread_id param.
+ (simple_diagnostic_event::get_thread_id): New accessor.
+ (simple_diagnostic_event::m_thread_id): New.
+ (class simple_diagnostic_thread): New.
+ (simple_diagnostic_path::simple_diagnostic_path): Move definition
+ to diagnostic.cc.
+ (simple_diagnostic_path::num_threads): New.
+ (simple_diagnostic_path::get_thread): New.
+ (simple_diagnostic_path::add_thread): New.
+ (simple_diagnostic_path::add_thread_event): New.
+ (simple_diagnostic_path::m_threads): New.
+ * diagnostic-show-locus.cc (layout::layout): Add pretty_printer
+ param for overriding the context's printer.
+ (diagnostic_show_locus): Likwise.
+ * diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path):
+ Move here from diagnostic-path.h. Add main thread.
+ (simple_diagnostic_path::num_threads): New.
+ (simple_diagnostic_path::get_thread): New.
+ (simple_diagnostic_path::add_thread): New.
+ (simple_diagnostic_path::add_thread_event): New.
+ (simple_diagnostic_event::simple_diagnostic_event): Add thread_id
+ param and use it to initialize m_thread_id. Reformat.
+ * diagnostic.h: Add pretty_printer param for overriding the
+ context's printer.
+ * tree-diagnostic-path.cc: Add #define INCLUDE_VECTOR.
+ (can_consolidate_events): Compare thread ids.
+ (class per_thread_summary): New.
+ (event_range::event_range): Add per_thread_summary arg.
+ (event_range::print): Add "pp" param and use it rather than dc's
+ printer.
+ (event_range::m_thread_id): New field.
+ (event_range::m_per_thread_summary): New field.
+ (path_summary::multithreaded_p): New.
+ (path_summary::get_events_for_thread_id): New.
+ (path_summary::m_per_thread_summary): New field.
+ (path_summary::m_thread_id_to_events): New field.
+ (path_summary::get_or_create_events_for_thread_id): New.
+ (path_summary::path_summary): Create per_thread_summary instances
+ as needed and associate the event_range instances with them.
+ (base_indent): Move here from print_path_summary_as_text.
+ (per_frame_indent): Likewise.
+ (class thread_event_printer): New, adapted from parts of
+ print_path_summary_as_text.
+ (print_path_summary_as_text): Make static. Reimplement to
+ moving most of existing code to class thread_event_printer,
+ capturing state as per-thread as appropriate.
+ (default_tree_diagnostic_path_printer): Add missing 'break' on
+ final case.
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * dwarf2cfi.cc (dwarf2cfi_cc_finalize): New.
+ * dwarf2out.h (dwarf2cfi_cc_finalize): New decl.
+ * ggc-common.cc (ggc_mark_roots): Multiply by rti->nelt when
+ clearing the deletable gcc_root_tab_t.
+ (ggc_common_finalize): New.
+ * ggc.h (ggc_common_finalize): New decl.
+ * toplev.cc (toplev::finalize): Call dwarf2cfi_cc_finalize and
+ ggc_common_finalize.
+
+2023-09-14 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/xtensa/predicates.md (xtensa_cstoresi_operator): Add
+ unsigned comparisons.
+ * config/xtensa/xtensa.cc (xtensa_expand_scc): Add code
+ generation of salt/saltu instructions.
+ * config/xtensa/xtensa.h (TARGET_SALT): New macro.
+ * config/xtensa/xtensa.md (salt, saltu): New instruction
+ patterns.
+
+2023-09-14 Vladimir N. Makarov <vmakarov@redhat.com>
+
+ * ira-costs.cc (find_costs_and_classes): Decrease memory cost
+ by equiv savings.
+
+2023-09-14 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/autovec.md: Change rtx code to unspec.
+ * config/riscv/riscv-protos.h (expand_reduction): Change prototype.
+ * config/riscv/riscv-v.cc (expand_reduction): Change prototype.
+ * config/riscv/riscv-vector-builtins-bases.cc (class widen_reducop):
+ Removed.
+ (class widen_freducop): Removed.
+ * config/riscv/vector-iterators.md (minu): Add reduc unspec, iterators, attrs.
+ * config/riscv/vector.md (@pred_reduc_<reduc><mode>): Change name.
+ (@pred_<reduc_op><mode>): New name.
+ (@pred_widen_reduc_plus<v_su><mode>): Change name.
+ (@pred_reduc_plus<order><mode>): Change name.
+ (@pred_widen_reduc_plus<order><mode>): Change name.
+
+2023-09-14 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/riscv-v.cc (expand_reduction): Adjust call.
+ * config/riscv/riscv-vector-builtins-bases.cc: Adjust call.
+ * config/riscv/vector-iterators.md: New iterators and attrs.
+ * config/riscv/vector.md (@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>):
+ Removed.
+ (@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><mode>): Added.
+ (@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>): Removed.
+ (@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>): Removed.
+ (@pred_widen_reduc_plus<v_su><mode>): Added.
+ (@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>): Removed.
+ (@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>): Removed.
+ (@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>): Removed.
+ (@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>): Removed.
+ (@pred_reduc_plus<order><mode>): Added.
+ (@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>): Removed.
+ (@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>): Removed.
+ (@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>): Removed.
+ (@pred_widen_reduc_plus<order><mode>): Added.
+
+2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_vector_costs::analyze_loop_info):
+ Move WHILELO handling to...
+ (aarch64_vector_costs::finish_cost): ...here. Check whether the
+ vectorizer has decided to use a predicated loop.
+
+2023-09-14 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/106164
+ * match.pd (`(X CMP1 CST1) AND/IOR (X CMP2 CST2)`):
+ Expand to support constants that are off by one.
+
+2023-09-14 Andrew Pinski <apinski@marvell.com>
+
+ * genmatch.cc (parser::parse_result): For an else clause
+ of an if statement inside a switch, error out explictly.
+
+2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/autovec-opt.md: Add VLS mask modes.
+ * config/riscv/autovec.md (@vcond_mask_<mode><vm>): Remove @.
+ (vcond_mask_<mode><vm>): Add VLS mask modes.
+ * config/riscv/vector.md: Ditto.
+
+2023-09-14 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111294
+ * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
+ operands that eventually become dead and use simple_dce_from_worklist
+ to remove their definitions if they did so.
+
+2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-sve.md (@aarch64_vec_duplicate_vq<mode>_le):
+ Accept all nonimmediate_operands, but keep the existing constraints.
+ If the instruction is split before RA, load invalid addresses into
+ a temporary register.
+ * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): Delete.
+
+2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111395
+ * config/riscv/riscv-vsetvl.cc (avl_info::operator==): Fix ICE.
+ (vector_insn_info::global_merge): Ditto.
+ (vector_insn_info::get_avl_or_vl_reg): Ditto.
+
+2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn): Format it.
+
+2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
+
+ * config/loongarch/loongarch-def.c: Modify the default value of
+ branch_cost.
+
+2023-09-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.cc (xtensa_expand_scc):
+ Revert the changes from the last patch, as the work in the RTL
+ expansion pass is too far to determine the physical registers.
+ * config/xtensa/xtensa.md (*eqne_INT_MIN): Ditto.
+ (eq_zero_NSA, eqne_zero, *eqne_zero_masked_bits): New patterns.
+
+2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
+
+ PR target/111334
+ * config/loongarch/loongarch.md: Fix bug of '<optab>di3_fake'.
+
+2023-09-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/autovec.md (vec_extract<mode><vel>): Add VLS modes.
+ (@vec_extract<mode><vel>): Ditto.
+ * config/riscv/vector.md: Ditto
+
+2023-09-13 Andrew Pinski <apinski@marvell.com>
+
+ * match.pd (`X <= MAX(X, Y)`):
+ Move before `MIN (X, C1) < C2` pattern.
+
+2023-09-13 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111364
+ * match.pd (`MIN (X, Y) == X`): Extend
+ to min/lt, min/ge, max/gt, max/le.
+
+2023-09-13 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111345
+ * match.pd (`Y > (X % Y)`): Merge
+ into ...
+ (`(X % Y) < Y`): Pattern by adding `:c`
+ on the comparison.
+
+2023-09-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111387
+ * tree-vect-slp.cc (vect_get_and_check_slp_defs): Check
+ EDGE_DFS_BACK when doing BB vectorization.
+ (vect_slp_function): Use rev_post_order_and_mark_dfs_back_seme
+ to compute RPO and mark backedges.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/autovec-opt.md (*cond_<mulh_table><mode>3_highpart):
+ New combine pattern.
+ * config/riscv/autovec.md (smul<mode>3_highpart): Mrege smul and umul.
+ (<mulh_table><mode>3_highpart): Merged pattern.
+ (umul<mode>3_highpart): Mrege smul and umul.
+ * config/riscv/vector-iterators.md (umul): New iterators.
+ (UNSPEC_VMULHU): New iterators.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/autovec-opt.md (*cond_v<any_shiftrt:optab><any_extend:optab>trunc<mode>):
+ New combine pattern.
+ (*cond_<any_shiftrt:optab>trunc<mode>): Ditto.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * config/riscv/autovec-opt.md (*copysign<mode>_neg): Move.
+ (*cond_copysign<mode>): New combine pattern.
+ * config/riscv/riscv-v.cc (needs_fp_rounding): Extend.
+
+2023-09-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111397
+ * tree-ssa-propagate.cc (may_propagate_copy): Change optional
+ argument to specify whether the PHI destination doesn't flow in
+ from an abnormal PHI.
+ (propagate_value): Adjust.
+ * tree-ssa-forwprop.cc (pass_forwprop::execute): Indicate abnormal
+ PHI dest.
+ * tree-ssa-sccvn.cc (eliminate_dom_walker::before_dom_children):
+ Likewise.
+ (process_bb): Likewise.
+
+2023-09-13 Pan Li <pan2.li@intel.com>
+
+ PR target/111362
+ * config/riscv/riscv.cc (riscv_emit_frm_mode_set): Bugfix.
+
+2023-09-13 Jiufu Guo <guojiufu@linux.ibm.com>
+
+ PR tree-optimization/111303
+ * match.pd ((X - N * M) / N): Add undefined_p checking.
+ ((X + N * M) / N): Likewise.
+ ((X + C) div_rshift N): Likewise.
+
+2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111337
+ * config/riscv/autovec.md (vcond_mask_<mode><mode>): New pattern.
+
+2023-09-12 Martin Jambor <mjambor@suse.cz>
+
+ * dbgcnt.def (form_fma): New.
+ * tree-ssa-math-opts.cc: Include dbgcnt.h.
+ (convert_mult_to_fma): Bail out if the debug counter say so.
+
+2023-09-12 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/autovec-opt.md: Update type
+ * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_save_regs_above_locals_p):
+ New function.
+ (aarch64_layout_frame): Use it to decide whether locals should
+ go above or below the saved registers.
+ (aarch64_expand_prologue): Update stack layout comment.
+ Emit a stack tie after the final adjustment.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::saved_regs_size)
+ (aarch64_frame::below_hard_fp_saved_regs_size): Delete.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Update accordingly.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe)
+ (aarch64_frame::hard_fp_save_and_probe): New fields.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize them.
+ Rather than asserting that a leaf function saves LR, instead assert
+ that a leaf function saves something.
+ (aarch64_get_separate_components): Prevent the chosen probe
+ registers from being individually shrink-wrapped.
+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
+ probe registers that aren't at the bottom of the previous allocation.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ Always probe the residual allocation at offset 1024, asserting
+ that that is in range.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Ensure that
+ the LR save slot is in the first 16 bytes of the register save area.
+ Only form STP/LDP push/pop candidates if both registers are valid.
+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
+ when LR was not in the first 16 bytes.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
+ Don't probe final allocations that are exactly 1KiB in size (after
+ unprobed space above the final allocation has been deducted).
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Tweak
+ calculation of initial_adjust for frames in which all saves
+ are SVE saves.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Simplify
+ the allocation of the top of the frame.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame): Add comment above
+ reg_offset.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
+ from the bottom of the frame, rather than the bottom of the saved
+ register area. Measure reg_offset from the bottom of the frame
+ rather than the bottom of the saved register area.
+ (aarch64_save_callee_saves): Update accordingly.
+ (aarch64_restore_callee_saves): Likewise.
+ (aarch64_get_separate_components): Likewise.
+ (aarch64_process_components): Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename
+ to...
+ (aarch64_frame::bytes_above_hard_fp): ...this.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
+ (aarch64_expand_prologue): Update accordingly.
+ (aarch64_initial_elimination_offset): Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to...
+ (aarch64_frame::bytes_above_locals): ...this.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
+ (aarch64_initial_elimination_offset): Update accordingly.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Move the
+ calculation of chain_offset into the emit_frame_chain block.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Remove
+ callee_offset handling.
+ (aarch64_save_callee_saves): Replace the start_offset parameter
+ with a bytes_below_sp parameter.
+ (aarch64_restore_callee_saves): Likewise.
+ (aarch64_expand_prologue): Update accordingly.
+ (aarch64_expand_epilogue): Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New
+ field.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it.
+ (aarch64_expand_epilogue): Use it instead of
+ below_hard_fp_saved_regs_size.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New
+ field.
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it,
+ and use it instead of crtl->outgoing_args_size.
+ (aarch64_get_separate_components): Use bytes_below_saved_regs instead
+ of outgoing_args_size.
+ (aarch64_process_components): Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Explicitly
+ allocate the frame in one go if there are no saved registers.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Use
+ chain_offset rather than callee_offset.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
+ a local shorthand for cfun->machine->frame.
+ (aarch64_restore_callee_saves, aarch64_get_separate_components):
+ (aarch64_process_components): Likewise.
+ (aarch64_allocate_and_probe_stack_space): Likewise.
+ (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
+ (aarch64_layout_frame): Use existing shorthand for one more case.
+
+2023-09-12 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/107881
+ * match.pd (`(a CMP1 b) ^ (a CMP2 b)`): New pattern.
+ (`(a CMP1 b) == (a CMP2 b)`): New pattern.
+
+2023-09-12 Pan Li <pan2.li@intel.com>
+
+ * config/riscv/riscv-vector-costs.h (struct range): Removed.
+
+2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vector-costs.cc (get_last_live_range): New function.
+ (compute_nregs_for_mode): Ditto.
+ (live_range_conflict_p): Ditto.
+ (max_number_of_live_regs): Ditto.
+ (compute_lmul): Ditto.
+ (costs::prefer_new_lmul_p): Ditto.
+ (costs::better_main_loop_than_p): Ditto.
+ * config/riscv/riscv-vector-costs.h (struct stmt_point): New struct.
+ (struct var_live_range): Ditto.
+ (struct autovec_info): Ditto.
+ * config/riscv/t-riscv: Update makefile for COST model.
+
+2023-09-12 Jakub Jelinek <jakub@redhat.com>
+
+ * fold-const.cc (range_check_type): Handle BITINT_TYPE like
+ OFFSET_TYPE.
+
+2023-09-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/111338
+ * tree-ssa-sccvn.cc (struct vn_walk_cb_data): Add bufsize non-static
+ data member.
+ (vn_walk_cb_data::push_partial_def): Remove bufsize variable.
+ (visit_nary_op): Avoid the BIT_AND_EXPR with constant rhs2
+ optimization if type's precision is too large for
+ vn_walk_cb_data::bufsize.
+
+2023-09-12 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * doc/gm2.texi (Compiler options): Document new option
+ -Wcase-enum.
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+
+ * doc/sourcebuild.texi (stack_size): Update.
+
+2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * config/riscv/bitmanip.md (*<optab>_not<mode>): Export INSN name.
+ (<optab>_not<mode>3): Likewise.
+ * config/riscv/riscv-protos.h (riscv_expand_strcmp): New
+ prototype.
+ * config/riscv/riscv-string.cc (GEN_EMIT_HELPER3): New helper
+ macros.
+ (GEN_EMIT_HELPER2): Likewise.
+ (emit_strcmp_scalar_compare_byte): New function.
+ (emit_strcmp_scalar_compare_subword): Likewise.
+ (emit_strcmp_scalar_compare_word): Likewise.
+ (emit_strcmp_scalar_load_and_compare): Likewise.
+ (emit_strcmp_scalar_call_to_libc): Likewise.
+ (emit_strcmp_scalar_result_calculation_nonul): Likewise.
+ (emit_strcmp_scalar_result_calculation): Likewise.
+ (riscv_expand_strcmp_scalar): Likewise.
+ (riscv_expand_strcmp): Likewise.
+ * config/riscv/riscv.md (*slt<u>_<X:mode><GPR:mode>): Export
+ INSN name.
+ (@slt<u>_<X:mode><GPR:mode>3): Likewise.
+ (cmpstrnsi): Invoke expansion function for str(n)cmp.
+ (cmpstrsi): Likewise.
+ * config/riscv/riscv.opt: Add new parameter
+ '-mstring-compare-inline-limit'.
+ * doc/invoke.texi: Document new parameter
+ '-mstring-compare-inline-limit'.
+
+2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * config.gcc: Add new object riscv-string.o.
+ riscv-string.cc.
+ * config/riscv/riscv-protos.h (riscv_expand_strlen):
+ New function.
+ * config/riscv/riscv.md (strlen<mode>): New expand INSN.
+ * config/riscv/riscv.opt: New flag 'minline-strlen'.
+ * config/riscv/t-riscv: Add new object riscv-string.o.
+ * config/riscv/thead.md (th_rev<mode>2): Export INSN name.
+ (th_rev<mode>2): Likewise.
+ (th_tstnbz<mode>2): New INSN.
+ * doc/invoke.texi: Document '-minline-strlen'.
+ * emit-rtl.cc (emit_likely_jump_insn): New helper function.
+ (emit_unlikely_jump_insn): Likewise.
+ * rtl.h (emit_likely_jump_insn): New prototype.
+ (emit_unlikely_jump_insn): Likewise.
+ * config/riscv/riscv-string.cc: New file.
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+
+ * config/nvptx/nvptx.h (TARGET_USE_LOCAL_THUNK_ALIAS_P)
+ (TARGET_SUPPORTS_ALIASES): Define.
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+
+ * doc/sourcebuild.texi (check-function-bodies): Update.
+
+2023-09-12 Tobias Burnus <tobias@codesourcery.com>
+
+ * gimplify.cc (gimplify_bind_expr): Check for
+ insertion after variable cleanup. Convert 'omp allocate'
+ var-decl attribute to GOMP_alloc/GOMP_free calls.
+
+2023-09-12 xuli <xuli1@eswincomputing.com>
+
+ * config/riscv/riscv-vector-builtins-bases.cc: remove unused
+ parameter e and replace NULL_RTX with gcc_unreachable.
+
+2023-09-12 xuli <xuli1@eswincomputing.com>
+
+ * config/riscv/riscv-vector-builtins-bases.cc (class vcreate): New class.
+ (BASE): Ditto.
+ * config/riscv/riscv-vector-builtins-bases.h: Ditto.
+ * config/riscv/riscv-vector-builtins-functions.def (vcreate): Add vcreate support.
+ * config/riscv/riscv-vector-builtins-shapes.cc (struct vcreate_def): Ditto.
+ (SHAPE): Ditto.
+ * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
+ * config/riscv/riscv-vector-builtins.cc: Add args type.
+
+2023-09-12 Fei Gao <gaofei@eswincomputing.com>
+
+ * config/riscv/riscv.cc
+ (riscv_avoid_shrink_wrapping_separate): wrap the condition check in
+ riscv_avoid_shrink_wrapping_separate.
+ (riscv_avoid_multi_push):avoid multi push if shrink_wrapping_separate
+ is active.
+ (riscv_get_separate_components):call riscv_avoid_shrink_wrapping_separate
+
+2023-09-12 Fei Gao <gaofei@eswincomputing.com>
+
+ * shrink-wrap.cc (try_shrink_wrapping_separate):call
+ use_shrink_wrapping_separate.
+ (use_shrink_wrapping_separate): wrap the condition
+ check in use_shrink_wrapping_separate.
+ * shrink-wrap.h (use_shrink_wrapping_separate): add to extern
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111348
+ * match.pd (`(a CMP b) ? minmax<a, c> : minmax<b, c>`): Add :c on
+ the cmp part of the pattern.
+
+2023-09-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/111340
+ * config/i386/i386.cc (output_pic_addr_const): Handle CONST_WIDE_INT.
+ Call output_addr_const for CASE_CONST_SCALAR_INT.
+
+2023-09-11 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/thead.md: Update types
+
+2023-09-11 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/riscv.md: Update types
+
+2023-09-11 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/riscv.md: Add "zicond" type
+ * config/riscv/zicond.md: Update types
+
+2023-09-11 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/riscv.md: Add "pushpop" and "mvpair" types
+ * config/riscv/zc.md: Update types
+
+2023-09-11 Edwin Lu <ewlu@rivosinc.com>
+
+ * config/riscv/autovec-opt.md: Update types
+ * config/riscv/autovec.md: likewise
+
+2023-09-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+
+ * config/s390/s390-builtins.def (s390_vec_signed_flt): Fix
+ builtin flag.
+ (s390_vec_unsigned_flt): Ditto.
+ (s390_vec_revb_flt): Ditto.
+ (s390_vec_reve_flt): Ditto.
+ (s390_vclfnhs): Fix operand flags.
+ (s390_vclfnls): Ditto.
+ (s390_vcrnfs): Ditto.
+ (s390_vcfn): Ditto.
+ (s390_vcnf): Ditto.
+
+2023-09-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
+
+ * config/s390/s390-builtins.def (O_U64): New.
+ (O1_U64): Ditto.
+ (O2_U64): Ditto.
+ (O3_U64): Ditto.
+ (O4_U64): Ditto.
+ (O_M12): Change bit position.
+ (O_S2): Ditto.
+ (O_S3): Ditto.
+ (O_S4): Ditto.
+ (O_S5): Ditto.
+ (O_S8): Ditto.
+ (O_S12): Ditto.
+ (O_S16): Ditto.
+ (O_S32): Ditto.
+ (O_ELEM): Ditto.
+ (O_LIT): Ditto.
+ (OB_DEF_VAR): Add operand constraints.
+ (B_DEF): Ditto.
+ * config/s390/s390.cc (s390_const_operand_ok): Honour 64 bit
+ operands.
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111349
+ * match.pd (`(a CMP CST1) ? max<a,CST2> : a`): Add :c on
+ the cmp part of the pattern.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111311
+ * config/riscv/riscv.opt: Set default as scalable vectorization.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-protos.h (get_all_predecessors): Remove.
+ (get_all_successors): Ditto.
+ * config/riscv/riscv-v.cc (get_all_predecessors): Ditto.
+ (get_all_successors): Ditto.
+
+2023-09-11 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/111329
+ * pretty-print.h (pp_wide_int): Rewrite from macro into inline
+ function. For printing values which don't fit into digit_buffer
+ use out-of-line function.
+ * wide-int-print.h (pp_wide_int_large): Declare.
+ * wide-int-print.cc: Include pretty-print.h.
+ (pp_wide_int_large): Define.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/riscv-vsetvl.cc (pass_vsetvl::global_eliminate_vsetvl_insn):
+ Use dominance analysis.
+ (pass_vsetvl::init): Ditto.
+ (pass_vsetvl::done): Ditto.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111311
+ * config/riscv/autovec.md: Add VLS modes.
+ * config/riscv/riscv-protos.h (cmp_lmul_le_one): New function.
+ (cmp_lmul_gt_one): Ditto.
+ * config/riscv/riscv-v.cc (cmp_lmul_le_one): Ditto.
+ (cmp_lmul_gt_one): Ditto.
+ * config/riscv/riscv.cc (riscv_print_operand): Add VLS modes.
+ (riscv_vectorize_vec_perm_const): Ditto.
+ * config/riscv/vector-iterators.md: Ditto.
+ * config/riscv/vector.md: Ditto.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * config/riscv/autovec-vls.md (*mov<mode>_vls): New pattern.
+ * config/riscv/vector-iterators.md: New iterator
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111346
+ * match.pd (`X CMP MINMAX`): Add `:c` on the cmp part
+ of the pattern
+
+2023-09-11 liuhongt <hongtao.liu@intel.com>
+
+ PR target/111306
+ PR target/111335
+ * config/i386/sse.md (int_comm): New int_attr.
+ (fma_<complexopname>_<mode><sdc_maskz_name><round_name>):
+ Remove % for Complex conjugate operations since they're not
+ commutative.
+ (fma_<complexpairopname>_<mode>_pair): Ditto.
+ (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto.
+ (cmul<conj_op><mode>3): Ditto.
+
2023-09-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
* config/riscv/riscv-v.cc (shuffle_generic_patterns): Expand
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 0799209..844ee2e 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20230911
+20230918
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6ba2527..231ce8b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,168 @@
+2023-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.cc (finish_record_type): Round the size in
+ the padding case as well.
+
+2023-09-15 Piotr Trojanek <trojanek@adacore.com>
+
+ * exp_aggr.adb (Build_Array_Aggr_Code): Don't build aggregate code
+ for null array aggregates.
+ * sem_aggr.adb (Resolve_Array_Aggregate): Don't examine formatting
+ of a null array aggregate.
+
+2023-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * inline.adb (Expand_Inlined_Call): In the case of a function call
+ that returns an unconstrained type and initializes an object, set
+ the No_Initialization flag on the new declaration of the object.
+
+2023-09-15 Patrick Bernardi <bernardi@adacore.com>
+
+ * exp_ch6.adb (Expand_N_Subprogram_Body): Do not perform
+ local-exception-to- goto optimization on barrier functions.
+ * exp_ch9.adb (Expand_Entry_Barrier): Simplify the if statement
+ around the simple barrier optimization and remove an old, no
+ longer relevant comment.
+
+2023-09-15 Patrick Bernardi <bernardi@adacore.com>
+
+ * bindgen.adb (Gen_Adainit): Generate restrictions when standard
+ library is suppressed.
+ (Gen_Output_File_Ada): Ditto.
+ (Gen_Restrictions): Ditto.
+
+2023-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_util.adb (Component_May_Be_Bit_Aligned): Do not return false
+ for a small component of a record type with a variant part.
+
+2023-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (Convert_To_Assignments): In the case of a
+ component association, call Is_Container_Aggregate on the parent's
+ parent.
+ (Expand_Array_Aggregate): Likewise.
+
+2023-09-15 Kévin Le Gouguec <legouguec@adacore.com>
+
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Remove
+ extended discussion regarding mold run-time dependencies;
+ packaging changes in GNAT Pro have made them obsolete.
+
+2023-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_res.adb (Resolve_Call): When the target is an entity, do not
+ freeze it if the current scope is the inner wrapper function built
+ for an expression function with a Post or Refined_Post aspect.
+
+2023-09-15 Bob Duff <duff@adacore.com>
+ Ronan Desplanques <desplanques@adacore.com>
+
+ * atree.adb (Node_Kind_Table): Specify parameter explicitly in
+ GNAT.Table instantiations. Use fully qualified references instead
+ of relying on use clauses.
+ (Get_Field_Value): Remove special case for F_Scope_Depth_Value.
+ That is, enable the Field_Present check in that case.
+ (It was already enabled for all other fields.) Violations of this
+ check were already fixed.
+ (Print_Node_Statistics): Sort the output in decreasing order of
+ frequencies.
+ (Print_Field_Statistics): Likewise (sort).
+ * accessibility.adb (Accessibility_Level): Pass Allow_Alt_Model in
+ recursive calls. Apparently, an oversight.
+ (Innermost_Master_Scope_Depth): Need to special-case the 'Old
+ attribute and allocators.
+ * einfo-utils.ads (Scope_Depth): Use Scope_Kind_Id to get
+ predicate checks.
+ (Scope_Depth_Set): Likewise.
+ (Scope_Depth_Default_0): Likewise.
+ * einfo-utils.adb: As for spec.
+ * frontend.adb (Frontend): Remove unnecessary "return;".
+ * gen_il-types.ads (Scope_Kind): New union type.
+ * gen_il-gen-gen_entities.adb (Scope_Kind): New union type.
+ * sem.ads: Move "with Einfo.Entities;" from body to spec.
+ (Scope_Stack_Entry): Declare Entity to be of Scope_Kind_Id to get
+ predicate checks. We had previously been putting non-scopes on the
+ scope stack; this prevents such anomalies.
+ * sem.adb: Move "with Einfo.Entities;" from body to spec.
+ * sem_ch8.ads: Move "with Einfo.Entities;" from body to spec. Add
+ "with Types;".
+ (Push_Scope): Use Scope_Kind_Id to get predicate checks.
+ * sem_ch8.adb: Move "with Einfo.Entities;" from body to spec. Add
+ "with Types;".
+ (Push_Scope): Use Scope_Kind_Id to get predicate checks.
+ (Pop_Scope): Use Scope_Kind_Id on popped entity to get predicate
+ checks. This prevents anomalies where a scope pushed onto the
+ stack is later mutated to a nonscope before being popped.
+ * sem_util.ads (Find_Enclosing_Scope): Add postcondition to ensure
+ that the enclosing scope of a node N is not the same node N.
+ Clearly, N does not enclose itself.
+ * sem_util.adb (Find_Enclosing_Scope): There were several bugs
+ where Find_Enclosing_Scope(N) = N. For example, if N is an entity,
+ then we would typically go up to its declaration, and then back
+ down to the Defining_Entity of the declaration, which is N itself.
+ There were other cases where Find_Enclosing_Scope of an entity
+ disagreed with Scope. Clearly, Find_Enclosing_Scope and Scope
+ should agree (when both are defined). Such bugs caused latent bugs
+ in accessibility.adb related to 'Old, and fixing bugs here caused
+ such bugs to be revealed. These are fixed by calling Scope when N
+ is an entity.
+
+2023-09-15 Javier Miranda <miranda@adacore.com>
+
+ * accessibility.ads (Needs_Result_Accessibility_Extra_Formal):
+ Removed.
+ * accessibility.adb (Needs_Result_Accessibility_Level_Param):
+ Removed.
+ (Needs_Result_Accessibility_Extra_Formal): Removed.
+ (Needs_Result_Accessibility_Level): Revert previous patch.
+ * sem_ch6.adb (Parent_Subprogram): Handle function overriding an
+ enumeration literal.
+ (Create_Extra_Formals): Ensure that the parent subprogram has all
+ its extra formals.
+
+2023-09-14 Yannick Moy <moy@adacore.com>
+
+ * exp_util.adb (Is_Statically_Disabled): New function to detect a
+ "statically disabled condition which evaluates to a given value",
+ as described in SPARK UG 7.3.2.
+ (Kill_Dead_Code): Call the new function Is_Statically_Disabled for
+ conditions of if statements.
+ * exp_util.ads (Is_Statically_Disabled): New function spec.
+
+2023-09-14 Javier Miranda <miranda@adacore.com>
+
+ * exp_util.adb (Process_Record_Component): Adjust assertion on the
+ availablity of the invariant procedure; required because the
+ invariant procedure is built by the expander, and hence it is not
+ available compiling generic units or when the sources have errors,
+ since expansion is then disabled.
+
+2023-09-14 Javier Miranda <miranda@adacore.com>
+
+ * sem_util.adb (Large_Max_Size_Mutable): Protect access to
+ attribute Is_Array_Type.
+
+2023-09-14 Javier Miranda <miranda@adacore.com>
+
+ * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Protect
+ access to Entity attribute and add missing code to check function
+ selector in a prefix form call.
+
+2023-09-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch6.adb (Expand_Ctrl_Function_Call): Also do nothing for the
+ expression of a delta aggregate.
+
+2023-09-14 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_util.adb (Initialized_By_Aliased_BIP_Func_Call): Make the name
+ matching more robust.
+
+2023-09-14 Javier Miranda <miranda@adacore.com>
+
+ * sem_ch6.adb (Parent_Subprogram): Complete assertion.
+
2023-09-05 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.cc (gnat_to_gnu): Really test Storage_Pool on
diff --git a/gcc/ada/accessibility.adb b/gcc/ada/accessibility.adb
index 6b4ec5b..bc217be 100644
--- a/gcc/ada/accessibility.adb
+++ b/gcc/ada/accessibility.adb
@@ -56,16 +56,6 @@ with Tbuild; use Tbuild;
package body Accessibility is
- function Needs_Result_Accessibility_Level_Param
- (Func_Id : Entity_Id;
- Func_Typ : Entity_Id) return Boolean;
- -- Subsidiary of functions Needs_Result_Accessibility_Extra_Formal and
- -- Needs_Result_Accessibility_Level_Param. Return True if the function
- -- needs an implicit parameter to identify the accessibility level of
- -- the function result "determined by the point of call". Func_Typ is
- -- the function return type; this function returns False if Func_Typ is
- -- Empty.
-
---------------------------
-- Accessibility_Message --
---------------------------
@@ -129,8 +119,9 @@ package body Accessibility is
is
Loc : constant Source_Ptr := Sloc (Expr);
- function Accessibility_Level (Expr : Node_Id) return Node_Id
- is (Accessibility_Level (Expr, Level, In_Return_Context));
+ function Accessibility_Level (Expr : Node_Id) return Node_Id is
+ (Accessibility_Level
+ (Expr, Level, In_Return_Context, Allow_Alt_Model));
-- Renaming of the enclosing function to facilitate recursive calls
function Make_Level_Literal (Level : Uint) return Node_Id;
@@ -174,7 +165,19 @@ package body Accessibility is
Ent := Defining_Entity_Or_Empty (Node_Par);
if Present (Ent) then
- Encl_Scop := Find_Enclosing_Scope (Ent);
+ -- X'Old is nested within the current subprogram, so we do not
+ -- want Find_Enclosing_Scope of that subprogram. If this is an
+ -- allocator, then we're looking for the innermost master of
+ -- the call, so again we do not want Find_Enclosing_Scope.
+
+ if (Nkind (N) = N_Attribute_Reference
+ and then Attribute_Name (N) = Name_Old)
+ or else Nkind (N) = N_Allocator
+ then
+ Encl_Scop := Ent;
+ else
+ Encl_Scop := Find_Enclosing_Scope (Ent);
+ end if;
-- Ignore transient scopes made during expansion while also
-- taking into account certain expansions - like iterators
@@ -187,17 +190,13 @@ package body Accessibility is
then
-- Note that in some rare cases the scope depth may not be
-- set, for example, when we are in the middle of analyzing
- -- a type and the enclosing scope is said type. So, instead,
- -- continue to move up the parent chain since the scope
- -- depth of the type's parent is the same as that of the
- -- type.
-
- if not Scope_Depth_Set (Encl_Scop) then
- pragma Assert (Nkind (Parent (Encl_Scop))
- = N_Full_Type_Declaration);
+ -- a type and the enclosing scope is said type. In that case
+ -- simply return zero for the outermost scope.
+
+ if Scope_Depth_Set (Encl_Scop) then
+ return Scope_Depth (Encl_Scop) + Master_Lvl_Modifier;
else
- return
- Scope_Depth (Encl_Scop) + Master_Lvl_Modifier;
+ return Uint_0;
end if;
end if;
@@ -434,7 +433,7 @@ package body Accessibility is
when N_Aggregate =>
return Make_Level_Literal (Innermost_Master_Scope_Depth (Expr));
- -- The accessibility level is that of the access type, except for an
+ -- The accessibility level is that of the access type, except for
-- anonymous allocators which have special rules defined in RM 3.10.2
-- (14/3).
@@ -482,6 +481,7 @@ package body Accessibility is
and then Present (Get_Dynamic_Accessibility (Entity (Pre)))
and then Level = Dynamic_Level
then
+ pragma Assert (Is_Anonymous_Access_Type (Etype (Pre)));
return New_Occurrence_Of
(Get_Dynamic_Accessibility (Entity (Pre)), Loc);
@@ -1902,34 +1902,6 @@ package body Accessibility is
and then Is_Explicitly_Aliased (Entity (Prefix (Exp)));
end Is_Special_Aliased_Formal_Access;
- ---------------------------------------------
- -- Needs_Result_Accessibility_Extra_Formal --
- ---------------------------------------------
-
- function Needs_Result_Accessibility_Extra_Formal
- (Func_Id : Entity_Id) return Boolean
- is
- Func_Typ : Entity_Id;
-
- begin
- if Present (Underlying_Type (Etype (Func_Id))) then
- Func_Typ := Underlying_Type (Etype (Func_Id));
-
- -- Case of a function returning a private type which is not completed
- -- yet. The support for this case is required because this function is
- -- called to create the extra formals of dispatching primitives, and
- -- they may be frozen before we see the full-view of their returned
- -- private type.
-
- else
- -- Temporarily restore previous behavior
- -- Func_Typ := Etype (Func_Id);
- Func_Typ := Empty;
- end if;
-
- return Needs_Result_Accessibility_Level_Param (Func_Id, Func_Typ);
- end Needs_Result_Accessibility_Extra_Formal;
-
--------------------------------------
-- Needs_Result_Accessibility_Level --
--------------------------------------
@@ -1939,18 +1911,6 @@ package body Accessibility is
is
Func_Typ : constant Entity_Id := Underlying_Type (Etype (Func_Id));
- begin
- return Needs_Result_Accessibility_Level_Param (Func_Id, Func_Typ);
- end Needs_Result_Accessibility_Level;
-
- --------------------------------------------
- -- Needs_Result_Accessibility_Level_Param --
- --------------------------------------------
-
- function Needs_Result_Accessibility_Level_Param
- (Func_Id : Entity_Id;
- Func_Typ : Entity_Id) return Boolean
- is
function Has_Unconstrained_Access_Discriminant_Component
(Comp_Typ : Entity_Id) return Boolean;
-- Returns True if any component of the type has an unconstrained access
@@ -2002,7 +1962,7 @@ package body Accessibility is
-- Flag used to temporarily disable a "True" result for tagged types.
-- See comments further below for details.
- -- Start of processing for Needs_Result_Accessibility_Level_Param
+ -- Start of processing for Needs_Result_Accessibility_Level
begin
-- False if completion unavailable, which can happen when we are
@@ -2078,7 +2038,7 @@ package body Accessibility is
else
return False;
end if;
- end Needs_Result_Accessibility_Level_Param;
+ end Needs_Result_Accessibility_Level;
------------------------------------------
-- Prefix_With_Safe_Accessibility_Level --
diff --git a/gcc/ada/accessibility.ads b/gcc/ada/accessibility.ads
index 731fea1..000e9b6 100644
--- a/gcc/ada/accessibility.ads
+++ b/gcc/ada/accessibility.ads
@@ -197,15 +197,6 @@ package Accessibility is
-- prefix is an aliased formal of Scop and that Scop returns an anonymous
-- access type. See RM 3.10.2 for more details.
- function Needs_Result_Accessibility_Extra_Formal
- (Func_Id : Entity_Id) return Boolean;
- -- Ada 2012 (AI05-0234): Return True if the function needs an implicit
- -- parameter to identify the accessibility level of the function result.
- -- If the type of the function result is a private type and its completion
- -- is unavailable, which can happen when we are analyzing an abstract
- -- subprogram, determines its result using the returned private type. This
- -- function is used by Create_Extra_Formals.
-
function Needs_Result_Accessibility_Level
(Func_Id : Entity_Id) return Boolean;
-- Ada 2012 (AI05-0234): Return True if the function needs an implicit
diff --git a/gcc/ada/atree.adb b/gcc/ada/atree.adb
index 5597d16..8e4c443 100644
--- a/gcc/ada/atree.adb
+++ b/gcc/ada/atree.adb
@@ -33,6 +33,8 @@ with Output; use Output;
with Sinfo.Utils; use Sinfo.Utils;
with System.Storage_Elements;
+with GNAT.Table;
+
package body Atree is
---------------
@@ -900,10 +902,7 @@ package body Atree is
function Get_Field_Value
(N : Node_Id; Field : Node_Or_Entity_Field) return Field_Size_32_Bit
is
- pragma Assert
- (if Field /= F_Scope_Depth_Value then -- ???Temporarily disable check
- Field_Checking.Field_Present (N, Field));
- -- Assert partially disabled because it fails in rare cases
+ pragma Assert (Field_Checking.Field_Present (N, Field));
Desc : Field_Descriptor renames Field_Descriptors (Field);
NN : constant Node_Or_Entity_Id := Node_To_Fetch_From (N, Field);
@@ -2889,6 +2888,34 @@ package body Atree is
Node_Counts : array (Node_Kind) of Count := (others => 0);
Entity_Counts : array (Entity_Kind) of Count := (others => 0);
+ -- We put the Node_Kinds and Entity_Kinds into a table just because
+ -- GNAT.Table has a handy sort procedure. We're sorting in decreasing
+ -- order of Node_Counts, for printing.
+
+ package Node_Kind_Table is new GNAT.Table
+ (Table_Component_Type => Node_Kind,
+ Table_Index_Type => Pos,
+ Table_Low_Bound => Pos'First,
+ Table_Initial => 8,
+ Table_Increment => 100
+ );
+ function Higher_Count (X, Y : Node_Kind) return Boolean is
+ (Node_Counts (X) > Node_Counts (Y));
+ procedure Sort_Node_Kind_Table is new
+ Node_Kind_Table.Sort_Table (Lt => Higher_Count);
+
+ package Entity_Kind_Table is new GNAT.Table
+ (Table_Component_Type => Entity_Kind,
+ Table_Index_Type => Pos,
+ Table_Low_Bound => Pos'First,
+ Table_Initial => 8,
+ Table_Increment => 100
+ );
+ function Higher_Count (X, Y : Entity_Kind) return Boolean is
+ (Entity_Counts (X) > Entity_Counts (Y));
+ procedure Sort_Entity_Kind_Table is new
+ Entity_Kind_Table.Sort_Table (Lt => Higher_Count);
+
All_Node_Offsets : Node_Offsets.Table_Type renames
Node_Offsets.Table (Node_Offsets.First .. Node_Offsets.Last);
begin
@@ -2897,6 +2924,8 @@ package body Atree is
Write_Int (Int (Slots.Last));
Write_Line (" non-header slots");
+ -- Count up the number of each kind of node and entity
+
for N in All_Node_Offsets'Range loop
declare
K : constant Node_Kind := Nkind (N);
@@ -2910,44 +2939,95 @@ package body Atree is
end;
end loop;
+ -- Copy kinds to tables, and sort:
+
for K in Node_Kind loop
- declare
- Count : constant Nat_64 := Node_Counts (K);
- begin
- Write_Int_64 (Count);
- Write_Ratio (Count, Int_64 (Node_Offsets.Last));
- Write_Str (" ");
- Write_Str (Node_Kind'Image (K));
- Write_Str (" ");
- Write_Int (Int (Sinfo.Nodes.Size (K)));
- Write_Str (" slots");
- Write_Eol;
- end;
+ Node_Kind_Table.Append (K);
end loop;
+ Sort_Node_Kind_Table;
for K in Entity_Kind loop
- declare
- Count : constant Nat_64 := Entity_Counts (K);
- begin
- Write_Int_64 (Count);
- Write_Ratio (Count, Int_64 (Node_Offsets.Last));
- Write_Str (" ");
- Write_Str (Entity_Kind'Image (K));
- Write_Str (" ");
- Write_Int (Int (Einfo.Entities.Size (K)));
- Write_Str (" slots");
- Write_Eol;
- end;
+ Entity_Kind_Table.Append (K);
end loop;
+ Sort_Entity_Kind_Table;
+
+ -- Print out the counts for each kind in decreasing order. Exit the loop
+ -- if we see a zero count, because all the rest must be zero, and the
+ -- zero ones are boring.
+
+ declare
+ use Node_Kind_Table;
+ -- Note: the full qualification of First below is needed for
+ -- bootstrap builds.
+ Table : Table_Type renames Node_Kind_Table.Table
+ (Node_Kind_Table.First .. Last);
+ begin
+ for J in Table'Range loop
+ declare
+ K : constant Node_Kind := Table (J);
+ Count : constant Nat_64 := Node_Counts (K);
+ begin
+ exit when Count = 0; -- skip the rest
+
+ Write_Int_64 (Count);
+ Write_Ratio (Count, Int_64 (Node_Offsets.Last));
+ Write_Str (" ");
+ Write_Str (Node_Kind'Image (K));
+ Write_Str (" ");
+ Write_Int (Int (Sinfo.Nodes.Size (K)));
+ Write_Str (" slots");
+ Write_Eol;
+ end;
+ end loop;
+ end;
+
+ declare
+ use Entity_Kind_Table;
+ -- Note: the full qualification of First below is needed for
+ -- bootstrap builds.
+ Table : Table_Type renames Entity_Kind_Table.Table
+ (Entity_Kind_Table.First .. Last);
+ begin
+ for J in Table'Range loop
+ declare
+ K : constant Entity_Kind := Table (J);
+ Count : constant Nat_64 := Entity_Counts (K);
+ begin
+ exit when Count = 0; -- skip the rest
+
+ Write_Int_64 (Count);
+ Write_Ratio (Count, Int_64 (Node_Offsets.Last));
+ Write_Str (" ");
+ Write_Str (Entity_Kind'Image (K));
+ Write_Str (" ");
+ Write_Int (Int (Einfo.Entities.Size (K)));
+ Write_Str (" slots");
+ Write_Eol;
+ end;
+ end loop;
+ end;
end Print_Node_Statistics;
procedure Print_Field_Statistics is
Total, G_Total, S_Total : Call_Count := 0;
+
+ -- Use a table for sorting, as done in Print_Node_Statistics.
+
+ package Field_Table is new GNAT.Table
+ (Table_Component_Type => Node_Or_Entity_Field,
+ Table_Index_Type => Pos,
+ Table_Low_Bound => Pos'First,
+ Table_Initial => 8,
+ Table_Increment => 100
+ );
+ function Higher_Count (X, Y : Node_Or_Entity_Field) return Boolean is
+ (Get_Count (X) + Set_Count (X) > Get_Count (Y) + Set_Count (Y));
+ procedure Sort_Field_Table is new
+ Field_Table.Sort_Table (Lt => Higher_Count);
begin
Write_Int_64 (Get_Original_Node_Count);
Write_Str (" + ");
Write_Int_64 (Set_Original_Node_Count);
- Write_Eol;
Write_Line (" Original_Node_Count getter and setter calls");
Write_Eol;
@@ -2970,32 +3050,55 @@ package body Atree is
Write_Int_64 (S_Total);
Write_Line (" total getter and setter calls");
- for Field in Node_Or_Entity_Field loop
- declare
- G : constant Call_Count := Get_Count (Field);
- S : constant Call_Count := Set_Count (Field);
- GS : constant Call_Count := G + S;
-
- Desc : Field_Descriptor renames Field_Descriptors (Field);
- Slot : constant Field_Offset :=
- (Field_Size (Desc.Kind) * Desc.Offset) / Slot_Size;
+ -- Copy fields to the table, and sort:
- begin
- Write_Int_64 (GS);
- Write_Ratio (GS, Total);
- Write_Str (" = ");
- Write_Int_64 (G);
- Write_Str (" + ");
- Write_Int_64 (S);
- Write_Str (" ");
- Write_Str (Node_Or_Entity_Field'Image (Field));
- Write_Str (" in slot ");
- Write_Int (Int (Slot));
- Write_Str (" size ");
- Write_Int (Int (Field_Size (Desc.Kind)));
- Write_Eol;
- end;
+ for F in Node_Or_Entity_Field loop
+ Field_Table.Append (F);
end loop;
+ Sort_Field_Table;
+
+ -- Print out the counts for each field in decreasing order of
+ -- getter+setter sum. As in Print_Node_Statistics, exit the loop
+ -- if we see a zero sum.
+
+ declare
+ use Field_Table;
+ -- Note: the full qualification of First below is needed for
+ -- bootstrap builds.
+ Table : Table_Type renames
+ Field_Table.Table (Field_Table.First .. Last);
+ begin
+ for J in Table'Range loop
+ declare
+ Field : constant Node_Or_Entity_Field := Table (J);
+
+ G : constant Call_Count := Get_Count (Field);
+ S : constant Call_Count := Set_Count (Field);
+ GS : constant Call_Count := G + S;
+
+ Desc : Field_Descriptor renames Field_Descriptors (Field);
+ Slot : constant Field_Offset :=
+ (Field_Size (Desc.Kind) * Desc.Offset) / Slot_Size;
+
+ begin
+ exit when GS = 0; -- skip the rest
+
+ Write_Int_64 (GS);
+ Write_Ratio (GS, Total);
+ Write_Str (" = ");
+ Write_Int_64 (G);
+ Write_Str (" + ");
+ Write_Int_64 (S);
+ Write_Str (" ");
+ Write_Str (Node_Or_Entity_Field'Image (Field));
+ Write_Str (" in slot ");
+ Write_Int (Int (Slot));
+ Write_Str (" size ");
+ Write_Int (Int (Field_Size (Desc.Kind)));
+ Write_Eol;
+ end;
+ end loop;
+ end;
end Print_Field_Statistics;
procedure Print_Statistics is
@@ -3003,6 +3106,7 @@ package body Atree is
Write_Eol;
Write_Eol;
Print_Node_Statistics;
+ Write_Eol;
Print_Field_Statistics;
end Print_Statistics;
diff --git a/gcc/ada/bindgen.adb b/gcc/ada/bindgen.adb
index ae20e5f..87f162e 100644
--- a/gcc/ada/bindgen.adb
+++ b/gcc/ada/bindgen.adb
@@ -691,6 +691,8 @@ package body Bindgen is
WBI (" null;");
end if;
+ Gen_Restrictions;
+
-- Generate the default-sized secondary stack pool if the secondary
-- stack is used by the program.
@@ -2804,9 +2806,7 @@ package body Bindgen is
-- Generate with of System.Restrictions to initialize
-- Run_Time_Restrictions.
- if System_Restrictions_Used
- and not Suppress_Standard_Library_On_Target
- then
+ if System_Restrictions_Used then
WBI ("");
WBI ("with System.Restrictions;");
end if;
@@ -2946,9 +2946,7 @@ package body Bindgen is
Count : Integer;
begin
- if Suppress_Standard_Library_On_Target
- or not System_Restrictions_Used
- then
+ if not System_Restrictions_Used then
return;
end if;
diff --git a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
index 6c0d2b3..6e80163 100644
--- a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
+++ b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst
@@ -6317,28 +6317,6 @@ Linker switches can be specified after :switch:`-largs` builder switch.
recent and faster alternatives, but only available on GNU/Linux
platforms.
- .. only:: PRO
-
- The GNAT distribution for native Linux platforms includes ``mold``,
- compiled against OpenSSL version 1.1; however, the distribution does
- not include OpenSSL. In order to use this linker, you may either:
-
- * use your system's OpenSSL library, if the version matches: in this
- situation, you need not do anything beside using the
- :switch:`-fuse-ld=mold` switch,
-
- * obtain a source distribution for OpenSSL 1.1, compile the
- :file:`libcrypto.so` library and install it in the directory of
- your choice, then include this directory in the
- :envvar:`LD_LIBRARY_PATH` environment variable,
-
- * install another copy of ``mold`` by other means in the directory
- of your choice, and include this directory in the :envvar:`PATH`
- environment variable; you may find this alternative preferable if
- the copy of ``mold`` included in GNAT does not suit your needs
- (e.g. being able to link against your system's OpenSSL, or using
- another version of ``mold``).
-
.. _Binding_with_gnatbind:
Binding with ``gnatbind``
diff --git a/gcc/ada/einfo-utils.adb b/gcc/ada/einfo-utils.adb
index cb9a00d..9bee1f4 100644
--- a/gcc/ada/einfo-utils.adb
+++ b/gcc/ada/einfo-utils.adb
@@ -2589,7 +2589,7 @@ package body Einfo.Utils is
-- Scope_Depth --
-----------------
- function Scope_Depth (Id : E) return Uint is
+ function Scope_Depth (Id : Scope_Kind_Id) return Uint is
Scop : Entity_Id;
begin
@@ -2601,7 +2601,7 @@ package body Einfo.Utils is
return Scope_Depth_Value (Scop);
end Scope_Depth;
- function Scope_Depth_Default_0 (Id : E) return U is
+ function Scope_Depth_Default_0 (Id : Scope_Kind_Id) return U is
begin
if Scope_Depth_Set (Id) then
return Scope_Depth (Id);
@@ -2615,7 +2615,7 @@ package body Einfo.Utils is
-- Scope_Depth_Set --
---------------------
- function Scope_Depth_Set (Id : E) return B is
+ function Scope_Depth_Set (Id : Scope_Kind_Id) return B is
begin
return not Is_Record_Type (Id)
and then not Field_Is_Initial_Zero (Id, F_Scope_Depth_Value);
diff --git a/gcc/ada/einfo-utils.ads b/gcc/ada/einfo-utils.ads
index 20ca470..21a8891 100644
--- a/gcc/ada/einfo-utils.ads
+++ b/gcc/ada/einfo-utils.ads
@@ -242,10 +242,10 @@ package Einfo.Utils is
function Type_Low_Bound (Id : E) return N with Inline;
function Underlying_Type (Id : E) return Entity_Id;
- function Scope_Depth (Id : E) return U with Inline;
- function Scope_Depth_Set (Id : E) return B with Inline;
+ function Scope_Depth (Id : Scope_Kind_Id) return U with Inline;
+ function Scope_Depth_Set (Id : Scope_Kind_Id) return B with Inline;
- function Scope_Depth_Default_0 (Id : E) return U;
+ function Scope_Depth_Default_0 (Id : Scope_Kind_Id) return U;
-- In rare cases, the Scope_Depth_Value (queried by Scope_Depth) is
-- not correctly set before querying it; this may be used instead of
-- Scope_Depth in such cases. It returns Uint_0 if the Scope_Depth_Value
diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb
index cdca24b..165f517 100644
--- a/gcc/ada/exp_aggr.adb
+++ b/gcc/ada/exp_aggr.adb
@@ -1989,7 +1989,10 @@ package body Exp_Aggr is
-- Skip this if no component associations
- if No (Expressions (N)) then
+ if Is_Null_Aggregate (N) then
+ null;
+
+ elsif No (Expressions (N)) then
-- STEP 1 (a): Sort the discrete choices
@@ -4251,9 +4254,11 @@ package body Exp_Aggr is
-- excluding container aggregates as these are transformed into
-- subprogram calls later.
- (Parent_Kind in
- N_Component_Association | N_Aggregate | N_Extension_Aggregate
- and then not Is_Container_Aggregate (Parent_Node))
+ (Parent_Kind = N_Component_Association
+ and then not Is_Container_Aggregate (Parent (Parent_Node)))
+
+ or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
+ and then not Is_Container_Aggregate (Parent_Node))
-- Allocator (see Convert_Aggr_In_Allocator)
@@ -6122,10 +6127,10 @@ package body Exp_Aggr is
Parent_Kind := Nkind (Parent_Node);
end if;
- if ((Parent_Kind = N_Component_Association
- or else Parent_Kind = N_Aggregate
- or else Parent_Kind = N_Extension_Aggregate)
- and then not Is_Container_Aggregate (Parent_Node))
+ if (Parent_Kind = N_Component_Association
+ and then not Is_Container_Aggregate (Parent (Parent_Node)))
+ or else (Parent_Kind in N_Aggregate | N_Extension_Aggregate
+ and then not Is_Container_Aggregate (Parent_Node))
or else (Parent_Kind = N_Object_Declaration
and then (Needs_Finalization (Typ)
or else Is_Special_Return_Object
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 0d1f1fb..a16dfe2 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -5424,9 +5424,13 @@ package body Exp_Ch6 is
-- object, then no need to copy/readjust/finalize, we can initialize it
-- in place. However, if the call returns on the secondary stack, then
-- we need the expansion because we'll be renaming the temporary as the
- -- (permanent) object.
+ -- (permanent) object. We also apply it in the case of the expression of
+ -- a delta aggregate, since it is used only to initialize a temporary.
- if Nkind (Par) = N_Object_Declaration and then not Use_Sec_Stack then
+ if Nkind (Par) in N_Object_Declaration | N_Delta_Aggregate
+ and then Expression (Par) = N
+ and then not Use_Sec_Stack
+ then
return;
end if;
@@ -6004,16 +6008,18 @@ package body Exp_Ch6 is
-- If local-exception-to-goto optimization active, insert dummy push
-- statements at start, and dummy pop statements at end, but inhibit
- -- this if we have No_Exception_Handlers, since they are useless and
- -- interfere with analysis, e.g. by CodePeer. We also don't need these
- -- if we're unnesting subprograms because the only purpose of these
- -- nodes is to ensure we don't set a label in one subprogram and branch
- -- to it in another.
+ -- this if we have No_Exception_Handlers or expanding a entry barrier
+ -- function, since they are useless and interfere with analysis (e.g. by
+ -- CodePeer) and other optimizations. We also don't need these if we're
+ -- unnesting subprograms because the only purpose of these nodes is to
+ -- ensure we don't set a label in one subprogram and branch to it in
+ -- another.
if (Debug_Flag_Dot_G
or else Restriction_Active (No_Exception_Propagation))
and then not Restriction_Active (No_Exception_Handlers)
and then not CodePeer_Mode
+ and then not Is_Entry_Barrier_Function (N)
and then not Unnest_Subprogram_Mode
and then Is_Non_Empty_List (L)
then
diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb
index 5dcd890..cfdab11 100644
--- a/gcc/ada/exp_ch9.adb
+++ b/gcc/ada/exp_ch9.adb
@@ -6124,7 +6124,6 @@ package body Exp_Ch9 is
-- Local variables
- Cond_Id : Entity_Id;
Entry_Body : Node_Id;
Func_Body : Node_Id := Empty;
@@ -6191,30 +6190,21 @@ package body Exp_Ch9 is
Check_Unprotected_Barrier (Cond);
end if;
- if Is_Entity_Name (Cond) then
- Cond_Id := Entity (Cond);
+ -- Perform a small optimization of simple barrier functions. If the
+ -- scope of the condition's entity is not the barrier function, then
+ -- the condition does not depend on any of the generated renamings.
+ -- If this is the case, eliminate the renamings as they are useless.
+ -- This optimization is not performed when the condition was folded
+ -- and validity checks are in effect because the original condition
+ -- may have produced at least one check that depends on the generated
+ -- renamings.
- -- Perform a small optimization of simple barrier functions. If the
- -- scope of the condition's entity is not the barrier function, then
- -- the condition does not depend on any of the generated renamings.
- -- If this is the case, eliminate the renamings as they are useless.
- -- This optimization is not performed when the condition was folded
- -- and validity checks are in effect because the original condition
- -- may have produced at least one check that depends on the generated
- -- renamings.
-
- if Expander_Active
- and then Scope (Cond_Id) /= Func_Id
- and then not Validity_Check_Operands
- then
- Set_Declarations (Func_Body, Empty_List);
- end if;
-
- -- Note that after analysis variables in this context will be
- -- replaced by the corresponding prival, that is to say a renaming
- -- of a selected component of the form _Object.Var. If expansion is
- -- disabled, as within a generic, we check that the entity appears in
- -- the current scope.
+ if Expander_Active
+ and then Is_Entity_Name (Cond)
+ and then Scope (Entity (Cond)) /= Func_Id
+ and then not Validity_Check_Operands
+ then
+ Set_Declarations (Func_Body, Empty_List);
end if;
end Expand_Entry_Barrier;
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
index a4b5ec3..2e6a1cf 100644
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -30,7 +30,6 @@ with Checks; use Checks;
with Debug; use Debug;
with Einfo; use Einfo;
with Einfo.Entities; use Einfo.Entities;
-with Einfo.Utils; use Einfo.Utils;
with Elists; use Elists;
with Errout; use Errout;
with Exp_Aggr; use Exp_Aggr;
@@ -3324,7 +3323,13 @@ package body Exp_Util is
-- if it has invariants of its own or inherits class-wide
-- invariants from parent or interface types.
- pragma Assert (Present (Proc_Id));
+ -- However, given that the invariant procedure is built by
+ -- the expander, it is not available compiling generic units
+ -- or when the sources have errors, since expansion is then
+ -- disabled.
+
+ pragma Assert (Present (Proc_Id)
+ or else not Expander_Active);
-- Generate:
-- <Comp_Typ>Invariant (T (_object).<Comp_Id>);
@@ -3333,7 +3338,9 @@ package body Exp_Util is
-- assertions are disabled or Assertion_Policy Ignore is in
-- effect.
- if not Has_Null_Body (Proc_Id) then
+ if Present (Proc_Id)
+ and then not Has_Null_Body (Proc_Id)
+ then
Append_New_To (Comp_Checks,
Make_Procedure_Call_Statement (Loc,
Name =>
@@ -4982,12 +4989,15 @@ package body Exp_Util is
return False;
-- If we know that we have a small (at most the maximum integer size)
- -- record or bit-packed array, then everything is fine, since the back
- -- end can handle these cases correctly, except if a slice is involved.
+ -- bit-packed array or record without variant part, then everything is
+ -- fine, since the back end can handle these cases correctly, except if
+ -- a slice is involved.
elsif Known_Esize (Comp)
and then Esize (Comp) <= System_Max_Integer_Size
- and then (Is_Record_Type (UT) or else Is_Bit_Packed_Array (UT))
+ and then (Is_Bit_Packed_Array (UT)
+ or else (Is_Record_Type (UT)
+ and then not Has_Variant_Part (UT)))
and then not For_Slice
then
return False;
@@ -8399,65 +8409,73 @@ package body Exp_Util is
Call := Unqual_Conv (Call);
+ -- We search for a formal with a matching suffix. We can't search
+ -- for the full name, because of the code at the end of Sem_Ch6.-
+ -- Create_Extra_Formals, which copies the Extra_Formals over to
+ -- the Alias of an instance, which will cause the formals to have
+ -- "incorrect" names. See also Exp_Ch6.Build_In_Place_Formal.
+
if Is_Build_In_Place_Function_Call (Call) then
declare
Caller_Allocation_Val : constant Uint :=
UI_From_Int (BIP_Allocation_Form'Pos (Caller_Allocation));
+ Access_Suffix : constant String :=
+ BIP_Formal_Suffix (BIP_Object_Access);
+ Alloc_Suffix : constant String :=
+ BIP_Formal_Suffix (BIP_Alloc_Form);
+
+ function Has_Suffix (Name, Suffix : String) return Boolean;
+ -- Return True if Name has suffix Suffix
+
+ ----------------
+ -- Has_Suffix --
+ ----------------
+
+ function Has_Suffix (Name, Suffix : String) return Boolean is
+ Len : constant Natural := Suffix'Length;
+
+ begin
+ return Name'Length > Len
+ and then Name (Name'Last - Len + 1 .. Name'Last) = Suffix;
+ end Has_Suffix;
- Access_Nam : Name_Id := No_Name;
Access_OK : Boolean := False;
- Actual : Node_Id;
- Alloc_Nam : Name_Id := No_Name;
Alloc_OK : Boolean := True;
- Formal : Node_Id;
- Func_Id : Entity_Id;
Param : Node_Id;
begin
-- Examine all parameter associations of the function call
Param := First (Parameter_Associations (Call));
+
while Present (Param) loop
if Nkind (Param) = N_Parameter_Association
and then Nkind (Selector_Name (Param)) = N_Identifier
then
- Actual := Explicit_Actual_Parameter (Param);
- Formal := Selector_Name (Param);
-
- -- Construct the names of formals BIPaccess and BIPalloc
- -- using the function name retrieved from an arbitrary
- -- formal.
-
- if Access_Nam = No_Name
- and then Alloc_Nam = No_Name
- and then Present (Entity (Formal))
- then
- Func_Id := Scope (Entity (Formal));
+ declare
+ Actual : constant Node_Id
+ := Explicit_Actual_Parameter (Param);
+ Formal : constant Node_Id
+ := Selector_Name (Param);
+ Name : constant String
+ := Get_Name_String (Chars (Formal));
- Access_Nam :=
- New_External_Name (Chars (Func_Id),
- BIP_Formal_Suffix (BIP_Object_Access));
+ begin
+ -- A nonnull BIPaccess has been found
- Alloc_Nam :=
- New_External_Name (Chars (Func_Id),
- BIP_Formal_Suffix (BIP_Alloc_Form));
- end if;
+ if Has_Suffix (Name, Access_Suffix)
+ and then Nkind (Actual) /= N_Null
+ then
+ Access_OK := True;
- -- A nonnull BIPaccess has been found
+ -- A BIPalloc has been found
- if Chars (Formal) = Access_Nam
- and then Nkind (Actual) /= N_Null
- then
- Access_OK := True;
- end if;
-
- -- A BIPalloc has been found
-
- if Chars (Formal) = Alloc_Nam
- and then Nkind (Actual) = N_Integer_Literal
- then
- Alloc_OK := Intval (Actual) = Caller_Allocation_Val;
- end if;
+ elsif Has_Suffix (Name, Alloc_Suffix)
+ and then Nkind (Actual) = N_Integer_Literal
+ then
+ Alloc_OK := Intval (Actual) = Caller_Allocation_Val;
+ end if;
+ end;
end if;
Next (Param);
@@ -8674,7 +8692,7 @@ package body Exp_Util is
-- first parameter is the transient. Such a call appears as:
-- It : Access_To_Constant_Reference_Type :=
- -- Constant_Indexing (Tran_Id.all, ...)'reference;
+ -- Constant_Indexing (Trans_Id.all, ...)'reference;
Stmt := First_Stmt;
while Present (Stmt) loop
@@ -8759,7 +8777,7 @@ package body Exp_Util is
-- first parameter is the transient. Such a call appears as:
-- It : Access_To_CW_Iterator :=
- -- Iterate (Tran_Id.all, ...)'reference;
+ -- Iterate (Trans_Id.all, ...)'reference;
Stmt := First_Stmt;
while Present (Stmt) loop
@@ -9385,6 +9403,135 @@ package body Exp_Util is
and then Has_Controlling_Result (Id);
end Is_Secondary_Stack_Thunk;
+ ----------------------------
+ -- Is_Statically_Disabled --
+ ----------------------------
+
+ function Is_Statically_Disabled
+ (N : Node_Id;
+ Value : Boolean;
+ Include_Valid : Boolean)
+ return Boolean
+ is
+ function Is_Discrete_Literal (N : Node_Id) return Boolean;
+ -- Returns whether N is an integer, character or enumeration literal
+
+ -------------------------
+ -- Is_Discrete_Literal --
+ -------------------------
+
+ function Is_Discrete_Literal (N : Node_Id) return Boolean is
+ (Nkind (N) in N_Integer_Literal | N_Character_Literal
+ or else (Nkind (N) in N_Identifier | N_Expanded_Name
+ and then Ekind (Entity (N)) = E_Enumeration_Literal));
+
+ Expr_N : constant Node_Id :=
+ (if Is_Static_Expression (N)
+ and then Entity (N) in Standard_True | Standard_False
+ and then Is_Rewrite_Substitution (N)
+ then Original_Node (N)
+ else N);
+
+ -- Start of processing for Is_Statically_Disabled
+
+ begin
+ -- A "statically disabled" condition which evaluates to Value is either:
+
+ case Nkind (Expr_N) is
+
+ -- an AND or AND THEN operator when:
+ -- - Value is True and both operands are statically disabled
+ -- conditions evaluated to True.
+ -- - Value is False and at least one operand is a statically disabled
+ -- condition evaluated to False.
+
+ when N_Op_And | N_And_Then =>
+ return
+ (if Value then
+ (Is_Statically_Disabled
+ (Left_Opnd (Expr_N), Value, Include_Valid)
+ and then Is_Statically_Disabled
+ (Right_Opnd (Expr_N), Value, Include_Valid))
+ else
+ (Is_Statically_Disabled
+ (Left_Opnd (Expr_N), Value, Include_Valid)
+ or else Is_Statically_Disabled
+ (Right_Opnd (Expr_N), Value, Include_Valid)));
+
+ -- an OR or OR ELSE operator when:
+ -- - Value is True and at least one operand is a statically disabled
+ -- condition evaluated to True.
+ -- - Value is False and both operands are statically disabled
+ -- conditions evaluated to False.
+
+ when N_Op_Or | N_Or_Else =>
+ return
+ (if Value then
+ (Is_Statically_Disabled
+ (Left_Opnd (Expr_N), Value, Include_Valid)
+ or else Is_Statically_Disabled
+ (Right_Opnd (Expr_N), Value, Include_Valid))
+ else
+ (Is_Statically_Disabled
+ (Left_Opnd (Expr_N), Value, Include_Valid)
+ and then Is_Statically_Disabled
+ (Right_Opnd (Expr_N), Value, Include_Valid)));
+
+ -- a NOT operator when the right operand is a statically disabled
+ -- condition evaluated to the negation of Value.
+
+ when N_Op_Not =>
+ return Is_Statically_Disabled
+ (Right_Opnd (Expr_N), not Value, Include_Valid);
+
+ -- a static constant when it is of a boolean type with aspect
+ -- Warnings Off.
+
+ when N_Identifier | N_Expanded_Name =>
+ return Is_Static_Expression (Expr_N)
+ and then Value = Is_True (Expr_Value (Expr_N))
+ and then Ekind (Entity (Expr_N)) = E_Constant
+ and then Has_Warnings_Off (Entity (Expr_N));
+
+ -- a relational_operator where one operand is a static constant with
+ -- aspect Warnings Off and the other operand is a literal of the
+ -- corresponding type.
+
+ when N_Op_Compare =>
+ declare
+ Left : constant Node_Id := Left_Opnd (Expr_N);
+ Right : constant Node_Id := Right_Opnd (Expr_N);
+ begin
+ return
+ Is_Static_Expression (N)
+ and then Value = Is_True (Expr_Value (N))
+ and then
+ ((Is_Discrete_Literal (Right)
+ and then Nkind (Left) in N_Identifier
+ | N_Expanded_Name
+ and then Ekind (Entity (Left)) = E_Constant
+ and then Has_Warnings_Off (Entity (Left)))
+ or else
+ (Is_Discrete_Literal (Left)
+ and then Nkind (Right) in N_Identifier
+ | N_Expanded_Name
+ and then Ekind (Entity (Right)) = E_Constant
+ and then Has_Warnings_Off (Entity (Right))));
+ end;
+
+ -- a reference to 'Valid or 'Valid_Scalar if Include_Valid is True
+
+ when N_Attribute_Reference =>
+ return Include_Valid
+ and then Get_Attribute_Id (Attribute_Name (Expr_N)) in
+ Attribute_Valid | Attribute_Valid_Scalars
+ and then Value;
+
+ when others =>
+ return False;
+ end case;
+ end Is_Statically_Disabled;
+
--------------------------------
-- Is_Uninitialized_Aggregate --
--------------------------------
@@ -9561,8 +9708,11 @@ package body Exp_Util is
-- if/case statement and either
-- a) we are in an instance and the condition/selector
-- has a statically known value; or
- -- b) the condition/selector is a simple identifier and
- -- warnings off is set for this identifier.
+ -- b) the selector of a case statement is a simple identifier
+ -- and warnings off is set for this identifier; or
+ -- c) the condition of an if statement is a "statically
+ -- disabled" condition which evaluates to False as described
+ -- in section 7.3.2 of SPARK User's Guide.
-- Dead code is common and reasonable in instances, so we don't
-- want a warning in that case.
@@ -9571,19 +9721,29 @@ package body Exp_Util is
begin
if Nkind (Parent (N)) = N_If_Statement then
C := Condition (Parent (N));
+
+ if Is_Statically_Disabled
+ (C, Value => False, Include_Valid => False)
+ then
+ W := False;
+ end if;
+
elsif Nkind (Parent (N)) = N_Case_Statement_Alternative then
C := Expression (Parent (Parent (N)));
- end if;
- if Present (C) then
- if (In_Instance and Compile_Time_Known_Value (C))
- or else (Nkind (C) = N_Identifier
- and then Present (Entity (C))
- and then Has_Warnings_Off (Entity (C)))
+ if Nkind (C) = N_Identifier
+ and then Present (Entity (C))
+ and then Has_Warnings_Off (Entity (C))
then
W := False;
end if;
end if;
+
+ if Present (C)
+ and then (In_Instance and Compile_Time_Known_Value (C))
+ then
+ W := False;
+ end if;
end;
-- Generate warning if not suppressed
diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads
index 65bb920..95ea440 100644
--- a/gcc/ada/exp_util.ads
+++ b/gcc/ada/exp_util.ads
@@ -25,6 +25,7 @@
-- Package containing utility procedures used throughout the expander
+with Einfo.Utils; use Einfo.Utils;
with Exp_Tss; use Exp_Tss;
with Namet; use Namet;
with Rtsfind; use Rtsfind;
@@ -856,6 +857,22 @@ package Exp_Util is
-- WARNING: There is a matching C declaration of this subprogram in fe.h
+ function Is_Statically_Disabled
+ (N : Node_Id;
+ Value : Boolean;
+ Include_Valid : Boolean)
+ return Boolean
+ with Pre => Nkind (N) in N_Subexpr and then Is_Boolean_Type (Etype (N));
+ -- Returns whether N is a "statically disabled" condition which evaluates
+ -- to Value, as described in section 7.3.2 of SPARK User's Guide.
+ --
+ -- If Include_Valid is True, a reference to 'Valid or 'Valid_Scalar is
+ -- considered as disabled for Value=True, which is useful in GNATprove, as
+ -- proof considers that these attributes always return the value True. In
+ -- general, Include_Valid is set to True in the proof phase of GNATprove,
+ -- as 'Valid is assumed to always evaluate to True, but not in the flow
+ -- analysis phase of GNATprove, which does not make this assumption.
+
function Is_Untagged_Derivation (T : Entity_Id) return Boolean;
-- Returns true if type T is not tagged and is a derived type,
-- or is a private type whose completion is such a type.
diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb
index f2faa09..eb9378d 100644
--- a/gcc/ada/frontend.adb
+++ b/gcc/ada/frontend.adb
@@ -565,6 +565,4 @@ begin
if Mapping_File_Name /= null then
Fmap.Update_Mapping_File (Mapping_File_Name.all);
end if;
-
- return;
end Frontend;
diff --git a/gcc/ada/gcc-interface/utils.cc b/gcc/ada/gcc-interface/utils.cc
index d0a13d2..f720f3a 100644
--- a/gcc/ada/gcc-interface/utils.cc
+++ b/gcc/ada/gcc-interface/utils.cc
@@ -2159,7 +2159,7 @@ finish_record_type (tree record_type, tree field_list, int rep_level,
/* If this is a padding record, we never want to make the size smaller
than what was specified in it, if any. */
if (TYPE_IS_PADDING_P (record_type) && had_size)
- size = TYPE_SIZE (record_type);
+ size = round_up (TYPE_SIZE (record_type), BITS_PER_UNIT);
else
size = round_up (size, BITS_PER_UNIT);
diff --git a/gcc/ada/gen_il-gen-gen_entities.adb b/gcc/ada/gen_il-gen-gen_entities.adb
index f980ba2..3e6ed96 100644
--- a/gcc/ada/gen_il-gen-gen_entities.adb
+++ b/gcc/ada/gen_il-gen-gen_entities.adb
@@ -1423,4 +1423,31 @@ begin -- Gen_IL.Gen.Gen_Entities
E_Subprogram_Body,
E_Subprogram_Type));
+ -- Entities that represent scopes. These can be on the scope stack,
+ -- and Scope_Depth can be queried. These are the kinds that have
+ -- the Scope_Depth_Value attribute, plus Record_Kind, which has
+ -- a synthesized Scope_Depth.
+
+ Union (Scope_Kind,
+ Children =>
+ (E_Void,
+ E_Private_Type,
+ E_Private_Subtype,
+ E_Limited_Private_Type,
+ E_Limited_Private_Subtype,
+ Concurrent_Kind,
+ Subprogram_Kind,
+ E_Entry,
+ E_Entry_Family,
+ E_Block,
+ Generic_Unit_Kind,
+ E_Loop,
+ E_Return_Statement,
+ E_Package,
+ E_Package_Body,
+ E_Subprogram_Body,
+ Record_Kind,
+ E_Incomplete_Type,
+ E_Subprogram_Type));
+
end Gen_IL.Gen.Gen_Entities;
diff --git a/gcc/ada/gen_il-types.ads b/gcc/ada/gen_il-types.ads
index be6ba52..be389eb 100644
--- a/gcc/ada/gen_il-types.ads
+++ b/gcc/ada/gen_il-types.ads
@@ -177,6 +177,7 @@ package Gen_IL.Types is
Record_Kind,
Record_Field_Kind,
Scalar_Kind,
+ Scope_Kind,
Signed_Integer_Kind,
Subprogram_Type_Or_Kind,
Subprogram_Kind,
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index db8b416..4e8d0f1 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -4157,6 +4157,7 @@ package body Inline is
Object_Definition =>
New_Copy_Tree (Object_Definition (Parent (Targ1))));
Replace_Formals (Decl);
+ Set_No_Initialization (Decl);
Rewrite (Parent (N), Decl);
Analyze (Parent (N));
diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb
index 3bff8d2..0356ffc 100644
--- a/gcc/ada/sem.adb
+++ b/gcc/ada/sem.adb
@@ -27,7 +27,6 @@ with Atree; use Atree;
with Debug; use Debug;
with Debug_A; use Debug_A;
with Einfo; use Einfo;
-with Einfo.Entities; use Einfo.Entities;
with Einfo.Utils; use Einfo.Utils;
with Elists; use Elists;
with Exp_SPARK; use Exp_SPARK;
diff --git a/gcc/ada/sem.ads b/gcc/ada/sem.ads
index 19abbf1..10d4bd2 100644
--- a/gcc/ada/sem.ads
+++ b/gcc/ada/sem.ads
@@ -201,6 +201,7 @@
-- called Preanalyze_And_Resolve and is in Sem_Res.
with Alloc;
+with Einfo.Entities; use Einfo.Entities;
with Opt; use Opt;
with Table;
with Types; use Types;
@@ -485,7 +486,7 @@ package Sem is
-- configuration file.
type Scope_Stack_Entry is record
- Entity : Entity_Id;
+ Entity : Scope_Kind_Id;
-- Entity representing the scope
Last_Subprogram_Name : String_Ptr;
diff --git a/gcc/ada/sem_aggr.adb b/gcc/ada/sem_aggr.adb
index e929fea..597c3ce 100644
--- a/gcc/ada/sem_aggr.adb
+++ b/gcc/ada/sem_aggr.adb
@@ -2081,7 +2081,10 @@ package body Sem_Aggr is
-- STEP 1: make sure the aggregate is correctly formatted
- if Present (Component_Associations (N)) then
+ if Is_Null_Aggregate (N) then
+ null;
+
+ elsif Present (Component_Associations (N)) then
-- Verify that all or none of the component associations
-- include an iterator specification.
diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
index 297371a..a0dad86 100644
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_ch6.adb
@@ -8766,7 +8766,12 @@ package body Sem_Ch6 is
Ovr_Alias : Entity_Id;
begin
- if Present (Ovr_E) then
+ if Present (Ovr_E)
+ and then Ekind (Ovr_E) = E_Enumeration_Literal
+ then
+ Ovr_E := Empty;
+
+ elsif Present (Ovr_E) then
Ovr_Alias := Ultimate_Alias (Ovr_E);
-- There is no real overridden subprogram if there is a mutual
@@ -8789,7 +8794,8 @@ package body Sem_Ch6 is
and then Has_Controlling_Result (Subp_Id))
or else Has_Suffix (Ovr_E, 'P')
or else Is_RACW_Stub_Type
- (Find_Dispatching_Type (Subp_Id)));
+ (Find_Dispatching_Type (Subp_Id))
+ or else No (Overridden_Operation (Ovr_E)));
if Present (Overridden_Operation (Ovr_E)) then
Ovr_E := Overridden_Operation (Ovr_E);
@@ -8991,6 +8997,18 @@ package body Sem_Ch6 is
-- for extra formals.
if Present (Parent_Subp) then
+
+ -- Ensure that the parent subprogram has all its extra formals.
+ -- Required because its return type may have been a private or
+ -- an incomplete type, and the extra formals were not added. We
+ -- protect this call against the weird cases where the parent subp
+ -- renames this primitive (documented in the body of the local
+ -- function Parent_Subprogram).
+
+ if Ultimate_Alias (Parent_Subp) /= Ref_E then
+ Create_Extra_Formals (Parent_Subp);
+ end if;
+
Parent_Formal := First_Formal (Parent_Subp);
-- For concurrent types, the controlling argument of a dispatching
@@ -9139,13 +9157,13 @@ package body Sem_Ch6 is
begin
Ada_Version := Ada_2022;
- if Needs_Result_Accessibility_Extra_Formal (Ref_E)
+ if Needs_Result_Accessibility_Level (Ref_E)
or else
(Present (Parent_Subp)
- and then Needs_Result_Accessibility_Extra_Formal (Parent_Subp))
+ and then Needs_Result_Accessibility_Level (Parent_Subp))
or else
(Present (Alias_Subp)
- and then Needs_Result_Accessibility_Extra_Formal (Alias_Subp))
+ and then Needs_Result_Accessibility_Level (Alias_Subp))
then
Set_Extra_Accessibility_Of_Result (E,
Add_Extra_Formal (E, Standard_Natural, E, "L"));
@@ -9694,7 +9712,7 @@ package body Sem_Ch6 is
-- Check attribute Extra_Accessibility_Of_Result
if Ekind (E) in E_Function | E_Subprogram_Type
- and then Needs_Result_Accessibility_Extra_Formal (E)
+ and then Needs_Result_Accessibility_Level (E)
and then No (Extra_Accessibility_Of_Result (E))
then
return False;
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb
index 6e0db36..3c55cb6 100644
--- a/gcc/ada/sem_ch8.adb
+++ b/gcc/ada/sem_ch8.adb
@@ -26,7 +26,6 @@
with Atree; use Atree;
with Debug; use Debug;
with Einfo; use Einfo;
-with Einfo.Entities; use Einfo.Entities;
with Einfo.Utils; use Einfo.Utils;
with Elists; use Elists;
with Errout; use Errout;
@@ -9301,7 +9300,7 @@ package body Sem_Ch8 is
procedure Pop_Scope is
SST : Scope_Stack_Entry renames Scope_Stack.Table (Scope_Stack.Last);
- S : constant Entity_Id := SST.Entity;
+ S : constant Scope_Kind_Id := SST.Entity;
begin
if Debug_Flag_E then
@@ -9363,7 +9362,7 @@ package body Sem_Ch8 is
-- Push_Scope --
----------------
- procedure Push_Scope (S : Entity_Id) is
+ procedure Push_Scope (S : Scope_Kind_Id) is
E : constant Entity_Id := Scope (S);
function Component_Alignment_Default return Component_Alignment_Kind;
diff --git a/gcc/ada/sem_ch8.ads b/gcc/ada/sem_ch8.ads
index 87323e0..246ab87 100644
--- a/gcc/ada/sem_ch8.ads
+++ b/gcc/ada/sem_ch8.ads
@@ -23,7 +23,8 @@
-- --
------------------------------------------------------------------------------
-with Types; use Types;
+with Einfo.Entities; use Einfo.Entities;
+with Types; use Types;
package Sem_Ch8 is
-----------------------------------
@@ -148,7 +149,7 @@ package Sem_Ch8 is
-- Mark a given entity or node Id's relevant use clauses as effective,
-- including redundant ones and ones outside of the current scope.
- procedure Push_Scope (S : Entity_Id);
+ procedure Push_Scope (S : Scope_Kind_Id);
-- Make new scope stack entry, pushing S, the entity for a scope onto the
-- top of the scope table. The current setting of the scope suppress flags
-- is saved for restoration on exit.
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index c708d04..b8d8e70 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -6582,6 +6582,9 @@ package body Sem_Res is
if Is_Entity_Name (Subp)
and then not In_Spec_Expression
and then not Is_Expression_Function_Or_Completion (Current_Scope)
+ and then not (Chars (Current_Scope) = Name_uWrapped_Statements
+ and then Is_Expression_Function_Or_Completion
+ (Scope (Current_Scope)))
and then
(not Is_Expression_Function_Or_Completion (Entity (Subp))
or else Expander_Active)
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 35ec296..e778bab 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -8938,10 +8938,16 @@ package body Sem_Util is
-- Find_Enclosing_Scope --
--------------------------
- function Find_Enclosing_Scope (N : Node_Id) return Entity_Id is
+ function Find_Enclosing_Scope (N : Node_Id) return Scope_Kind_Id is
Par : Node_Id;
begin
+ -- If N is an entity, simply return its Scope
+
+ if Nkind (N) in N_Entity then
+ return Scope (N);
+ end if;
+
-- Examine the parent chain looking for a construct which defines a
-- scope.
@@ -16509,8 +16515,13 @@ package body Sem_Util is
-- False (it could be a function selector in a prefix form call
-- occurring in an iterator specification).
- if Ekind (Entity (Selector_Name (Object))) not in
- E_Component | E_Discriminant
+ if (Present (Entity (Selector_Name (Object)))
+ and then Ekind (Entity (Selector_Name (Object))) not in
+ E_Component | E_Discriminant)
+ or else
+ (Inside_A_Generic
+ and then Nkind (Parent (Selector_Name (Object)))
+ = N_Function_Call)
then
return False;
end if;
@@ -22575,7 +22586,9 @@ package body Sem_Util is
Ityp : Entity_Id;
begin
- if Is_Array_Type (Comp_Type) then
+ if Present (Comp_Type)
+ and then Is_Array_Type (Comp_Type)
+ then
Indx := First_Index (Comp_Type);
while Present (Indx) loop
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
index b56a235..92016bc 100644
--- a/gcc/ada/sem_util.ads
+++ b/gcc/ada/sem_util.ads
@@ -889,7 +889,8 @@ package Sem_Util is
-- such a loop exists, return the entity of its identifier (E_Loop scope),
-- otherwise return Empty.
- function Find_Enclosing_Scope (N : Node_Id) return Entity_Id;
+ function Find_Enclosing_Scope (N : Node_Id) return Scope_Kind_Id with
+ Post => Find_Enclosing_Scope'Result /= N;
-- Find the nearest scope which encloses arbitrary node N
function Find_Loop_In_Conditional_Block (N : Node_Id) return Node_Id;
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog
index 2e04d4a..272c7fb 100644
--- a/gcc/analyzer/ChangeLog
+++ b/gcc/analyzer/ChangeLog
@@ -1,3 +1,80 @@
+2023-09-15 David Malcolm <dmalcolm@redhat.com>
+
+ * analyzer.cc (get_stmt_location): Handle null stmt.
+ * diagnostic-manager.cc (saved_diagnostic::saved_diagnostic): Copy
+ m_loc from ploc.
+ (saved_diagnostic::operator==): Compare m_loc.
+ (saved_diagnostic::calc_best_epath): Only use m_stmt_finder if
+ m_loc is unknown.
+ (dedupe_key::dedupe_key): Initialize m_loc.
+ (dedupe_key::operator==): Compare m_loc.
+ (dedupe_key::get_location): Use m_loc if it's known.
+ (dedupe_key::m_loc): New field.
+ (diagnostic_manager::emit_saved_diagnostic): Only call
+ get_emission_location if m_loc is unknown, preferring to use m_loc
+ if it's available.
+ * diagnostic-manager.h (saved_diagnostic::m_loc): New field.
+ (pending_location::pending_location): Initialize m_loc. Add
+ overload taking a location_t rather than a stmt/stmt_finder.
+ (pending_location::m_loc): New field.
+
+2023-09-15 David Malcolm <dmalcolm@redhat.com>
+
+ * analyzer.h (struct pending_location): New forward decl.
+ * diagnostic-manager.cc (saved_diagnostic::saved_diagnostic):
+ Replace params "enode", "snode", "stmt", and "stmt_finder" with
+ "ploc".
+ (diagnostic_manager::add_diagnostic): Likewise for both overloads.
+ * diagnostic-manager.h (saved_diagnostic::saved_diagnostic):
+ Likewise.
+ (struct pending_location): New.
+ (diagnostic_manager::add_diagnostic): Replace params "enode",
+ "snode", "stmt", and "stmt_finder" with "ploc".
+ * engine.cc (impl_region_model_context::warn): Update call to
+ add_diagnostic for above change.
+ (impl_sm_context::warn): Likewise.
+ (impl_region_model_context::on_state_leak): Likewise.
+ * infinite-recursion.cc
+ (exploded_graph::detect_infinite_recursion): Likewise.
+
+2023-09-15 David Malcolm <dmalcolm@redhat.com>
+
+ * region-model.cc (region_model::get_gassign_result): Handle
+ volatile ops by using a conjured_svalue.
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * checker-event.h (checker_event::get_thread_id): New.
+ * checker-path.h (class checker_path): Implement thread-related
+ vfuncs via a single simple_diagnostic_thread instance named
+ "main".
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-manager.cc (compatible_epath_p): Fix missing return.
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic-manager.cc (process_worklist_item): Use
+ std::unique_ptr rather than plain rejected_constraint *.
+ * engine.cc (exploded_path::feasible_p): Likewise.
+ (feasibility_state::maybe_update_for_edge): Likewise.
+ * exploded-graph.h (feasibility_problem::feasibility_problem):
+ Likewise.
+ (feasibility_problem::~feasibility_problem): Delete.
+ (feasibility_problem::m_rc): Use std::unique_ptr.
+ (feasibility_state::maybe_update_for_edge): Likewise.
+ * feasible-graph.cc (feasible_graph::add_feasibility_problem):
+ Likewise.
+ * feasible-graph.h (class infeasible_node): Likewise.
+ (feasible_graph::add_feasibility_problem): Likewise.
+ * region-model.cc (region_model::add_constraint): Likewise.
+ (region_model::maybe_update_for_edge): Likewise.
+ (region_model::apply_constraints_for_gcond): Likewise.
+ (region_model::apply_constraints_for_gswitch): Likewise.
+ (region_model::apply_constraints_for_exception): Likewise.
+ * region-model.h (class region_model): Likewise for decls.
+
2023-09-09 benjamin priour <vultkayn@gcc.gnu.org>
PR analyzer/96395
diff --git a/gcc/analyzer/analyzer.cc b/gcc/analyzer/analyzer.cc
index 5091fb7..94c5cf2 100644
--- a/gcc/analyzer/analyzer.cc
+++ b/gcc/analyzer/analyzer.cc
@@ -41,6 +41,8 @@ namespace ana {
location_t
get_stmt_location (const gimple *stmt, function *fun)
{
+ if (!stmt)
+ return UNKNOWN_LOCATION;
if (get_pure_location (stmt->location) == UNKNOWN_LOCATION)
{
/* Workaround for missing location information for clobber
diff --git a/gcc/analyzer/analyzer.h b/gcc/analyzer/analyzer.h
index 208b850..777293f 100644
--- a/gcc/analyzer/analyzer.h
+++ b/gcc/analyzer/analyzer.h
@@ -90,6 +90,7 @@ class reachable_regions;
class bounded_ranges;
class bounded_ranges_manager;
+struct pending_location;
class pending_diagnostic;
class pending_note;
struct event_loc_info;
diff --git a/gcc/analyzer/checker-event.h b/gcc/analyzer/checker-event.h
index 5dd25cb..7ba92f1 100644
--- a/gcc/analyzer/checker-event.h
+++ b/gcc/analyzer/checker-event.h
@@ -113,6 +113,10 @@ public:
return NULL;
}
meaning get_meaning () const override;
+ diagnostic_thread_id_t get_thread_id () const final override
+ {
+ return 0;
+ }
/* Additional functionality. */
diff --git a/gcc/analyzer/checker-path.h b/gcc/analyzer/checker-path.h
index 627f64e..93c807c 100644
--- a/gcc/analyzer/checker-path.h
+++ b/gcc/analyzer/checker-path.h
@@ -30,7 +30,11 @@ namespace ana {
class checker_path : public diagnostic_path
{
public:
- checker_path (logger *logger) : diagnostic_path (), m_logger (logger) {}
+ checker_path (logger *logger)
+ : diagnostic_path (),
+ m_thread ("main"),
+ m_logger (logger)
+ {}
/* Implementation of diagnostic_path vfuncs. */
@@ -43,6 +47,15 @@ public:
{
return *m_events[idx];
}
+ unsigned num_threads () const final override
+ {
+ return 1;
+ }
+ const diagnostic_thread &
+ get_thread (diagnostic_thread_id_t) const final override
+ {
+ return m_thread;
+ }
checker_event *get_checker_event (int idx)
{
@@ -120,6 +133,8 @@ public:
private:
DISABLE_COPY_AND_ASSIGN(checker_path);
+ simple_diagnostic_thread m_thread;
+
/* The events that have occurred along this path. */
auto_delete_vec<checker_event> m_events;
diff --git a/gcc/analyzer/diagnostic-manager.cc b/gcc/analyzer/diagnostic-manager.cc
index 0dd375d..972413a 100644
--- a/gcc/analyzer/diagnostic-manager.cc
+++ b/gcc/analyzer/diagnostic-manager.cc
@@ -516,7 +516,7 @@ process_worklist_item (feasible_worklist *worklist,
}
feasibility_state succ_state (fnode->get_state ());
- rejected_constraint *rc = NULL;
+ std::unique_ptr<rejected_constraint> rc;
if (succ_state.maybe_update_for_edge (logger, succ_eedge, &rc))
{
gcc_assert (rc == NULL);
@@ -560,7 +560,7 @@ process_worklist_item (feasible_worklist *worklist,
gcc_assert (rc);
fg->add_feasibility_problem (fnode,
succ_eedge,
- rc);
+ std::move (rc));
/* Give up if there have been too many infeasible edges. */
if (fg->get_num_infeasible ()
@@ -664,30 +664,27 @@ epath_finder::dump_feasible_path (const exploded_node *target_enode,
/* class saved_diagnostic. */
-/* saved_diagnostic's ctor.
- Take ownership of D and STMT_FINDER. */
+/* saved_diagnostic's ctor. */
saved_diagnostic::saved_diagnostic (const state_machine *sm,
- const exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *stmt_finder,
+ const pending_location &ploc,
tree var,
const svalue *sval,
state_machine::state_t state,
std::unique_ptr<pending_diagnostic> d,
unsigned idx)
-: m_sm (sm), m_enode (enode), m_snode (snode), m_stmt (stmt),
- /* stmt_finder could be on-stack; we want our own copy that can
- outlive that. */
- m_stmt_finder (stmt_finder ? stmt_finder->clone () : NULL),
+: m_sm (sm), m_enode (ploc.m_enode), m_snode (ploc.m_snode),
+ m_stmt (ploc.m_stmt),
+ /* stmt_finder could be on-stack; we want our own copy that can
+ outlive that. */
+ m_stmt_finder (ploc.m_finder ? ploc.m_finder->clone () : NULL),
+ m_loc (ploc.m_loc),
m_var (var), m_sval (sval), m_state (state),
m_d (std::move (d)), m_trailing_eedge (NULL),
m_idx (idx),
m_best_epath (NULL), m_problem (NULL),
m_notes ()
{
- gcc_assert (m_stmt || m_stmt_finder);
-
/* We must have an enode in order to be able to look for paths
through the exploded_graph to this diagnostic. */
gcc_assert (m_enode);
@@ -706,6 +703,7 @@ saved_diagnostic::operator== (const saved_diagnostic &other) const
&& m_snode == other.m_snode
&& m_stmt == other.m_stmt
/* We don't compare m_stmt_finder. */
+ && m_loc == other.m_loc
&& pending_diagnostic::same_tree_p (m_var, other.m_var)
&& m_state == other.m_state
&& m_d->equal_p (*other.m_d)
@@ -835,8 +833,8 @@ saved_diagnostic::dump_as_dot_node (pretty_printer *pp) const
/* Use PF to find the best exploded_path for this saved_diagnostic,
and store it in m_best_epath.
- If m_stmt is still NULL, use m_stmt_finder on the epath to populate
- m_stmt.
+ If we don't have a specific location in m_loc and m_stmt is still NULL,
+ use m_stmt_finder on the epath to populate m_stmt.
Return true if a best path was found. */
bool
@@ -855,12 +853,15 @@ saved_diagnostic::calc_best_epath (epath_finder *pf)
return false;
gcc_assert (m_best_epath);
- if (m_stmt == NULL)
+ if (m_loc == UNKNOWN_LOCATION)
{
- gcc_assert (m_stmt_finder);
- m_stmt = m_stmt_finder->find_stmt (*m_best_epath);
+ if (m_stmt == NULL)
+ {
+ gcc_assert (m_stmt_finder);
+ m_stmt = m_stmt_finder->find_stmt (*m_best_epath);
+ }
+ gcc_assert (m_stmt);
}
- gcc_assert (m_stmt);
return true;
}
@@ -966,6 +967,14 @@ compatible_epath_p (const exploded_path *lhs_path,
/* A superedge was found for only one of the two paths. */
return false;
}
+
+ /* A superedge was found for only one of the two paths. */
+ if (lhs_eedge_idx >= 0 || rhs_eedge_idx >= 0)
+ return false;
+
+ /* Both paths were drained up entirely.
+ No discriminant was found. */
+ return true;
}
@@ -1094,9 +1103,7 @@ diagnostic_manager::diagnostic_manager (logger *logger, engine *eng,
bool
diagnostic_manager::add_diagnostic (const state_machine *sm,
- exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *finder,
+ const pending_location &ploc,
tree var,
const svalue *sval,
state_machine::state_t state,
@@ -1106,15 +1113,16 @@ diagnostic_manager::add_diagnostic (const state_machine *sm,
/* We must have an enode in order to be able to look for paths
through the exploded_graph to the diagnostic. */
- gcc_assert (enode);
+ gcc_assert (ploc.m_enode);
/* If this warning is ultimately going to be rejected by a -Wno-analyzer-*
flag, reject it now.
We can only do this for diagnostics where we already know the stmt,
and thus can determine the emission location. */
- if (stmt)
+ if (ploc.m_stmt)
{
- location_t loc = get_emission_location (stmt, snode->m_fun, *d);
+ location_t loc
+ = get_emission_location (ploc.m_stmt, ploc.m_snode->m_fun, *d);
int option = d->get_controlling_option ();
if (!warning_enabled_at (loc, option))
{
@@ -1127,14 +1135,14 @@ diagnostic_manager::add_diagnostic (const state_machine *sm,
}
saved_diagnostic *sd
- = new saved_diagnostic (sm, enode, snode, stmt, finder, var, sval,
- state, std::move (d), m_saved_diagnostics.length ());
+ = new saved_diagnostic (sm, ploc, var, sval, state, std::move (d),
+ m_saved_diagnostics.length ());
m_saved_diagnostics.safe_push (sd);
- enode->add_diagnostic (sd);
+ ploc.m_enode->add_diagnostic (sd);
if (get_logger ())
log ("adding saved diagnostic %i at SN %i to EN %i: %qs",
sd->get_index (),
- snode->m_index, enode->m_index, sd->m_d->get_kind ());
+ ploc.m_snode->m_index, ploc.m_enode->m_index, sd->m_d->get_kind ());
return true;
}
@@ -1143,14 +1151,11 @@ diagnostic_manager::add_diagnostic (const state_machine *sm,
Take ownership of D (or delete it). */
bool
-diagnostic_manager::add_diagnostic (exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *finder,
+diagnostic_manager::add_diagnostic (const pending_location &ploc,
std::unique_ptr<pending_diagnostic> d)
{
- gcc_assert (enode);
- return add_diagnostic (NULL, enode, snode, stmt, finder, NULL_TREE,
- NULL, 0, std::move (d));
+ gcc_assert (ploc.m_enode);
+ return add_diagnostic (NULL, ploc, NULL_TREE, NULL, 0, std::move (d));
}
/* Add PN to the most recent saved_diagnostic. */
@@ -1210,9 +1215,9 @@ class dedupe_key
{
public:
dedupe_key (const saved_diagnostic &sd)
- : m_sd (sd), m_stmt (sd.m_stmt)
+ : m_sd (sd), m_stmt (sd.m_stmt), m_loc (sd.m_loc)
{
- gcc_assert (m_stmt);
+ gcc_assert (m_stmt || m_loc != UNKNOWN_LOCATION);
}
hashval_t hash () const
@@ -1225,11 +1230,15 @@ public:
bool operator== (const dedupe_key &other) const
{
return (m_sd == other.m_sd
- && m_stmt == other.m_stmt);
+ && m_stmt == other.m_stmt
+ && m_loc == other.m_loc);
}
location_t get_location () const
{
+ if (m_loc != UNKNOWN_LOCATION)
+ return m_loc;
+ gcc_assert (m_stmt);
return m_stmt->location;
}
@@ -1258,6 +1267,7 @@ public:
const saved_diagnostic &m_sd;
const gimple *m_stmt;
+ location_t m_loc;
};
/* Traits for use by dedupe_winners. */
@@ -1541,8 +1551,9 @@ diagnostic_manager::emit_saved_diagnostic (const exploded_graph &eg,
emission_path.prepare_for_emission (sd.m_d.get ());
- location_t loc
- = get_emission_location (sd.m_stmt, sd.m_snode->m_fun, *sd.m_d);
+ location_t loc = sd.m_loc;
+ if (loc == UNKNOWN_LOCATION)
+ loc = get_emission_location (sd.m_stmt, sd.m_snode->m_fun, *sd.m_d);
/* Allow the pending_diagnostic to fix up the locations of events. */
emission_path.fixup_locations (sd.m_d.get ());
diff --git a/gcc/analyzer/diagnostic-manager.h b/gcc/analyzer/diagnostic-manager.h
index 413ab0c..27ab9ed 100644
--- a/gcc/analyzer/diagnostic-manager.h
+++ b/gcc/analyzer/diagnostic-manager.h
@@ -31,9 +31,7 @@ class saved_diagnostic
{
public:
saved_diagnostic (const state_machine *sm,
- const exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *stmt_finder,
+ const pending_location &ploc,
tree var, const svalue *sval,
state_machine::state_t state,
std::unique_ptr<pending_diagnostic> d,
@@ -75,6 +73,7 @@ public:
const supernode *m_snode;
const gimple *m_stmt;
std::unique_ptr<stmt_finder> m_stmt_finder;
+ location_t m_loc;
tree m_var;
const svalue *m_sval;
state_machine::state_t m_state;
@@ -100,6 +99,46 @@ private:
class path_builder;
+/* A bundle of information capturing where a pending_diagnostic should
+ be emitted. */
+
+struct pending_location
+{
+public:
+ pending_location (exploded_node *enode,
+ const supernode *snode,
+ const gimple *stmt,
+ const stmt_finder *finder)
+ : m_enode (enode),
+ m_snode (snode),
+ m_stmt (stmt),
+ m_finder (finder),
+ m_loc (UNKNOWN_LOCATION)
+ {
+ gcc_assert (m_stmt || m_finder);
+ }
+
+ /* ctor for cases where we have a location_t but there isn't any
+ gimple stmt associated with the diagnostic. */
+
+ pending_location (exploded_node *enode,
+ const supernode *snode,
+ location_t loc)
+ : m_enode (enode),
+ m_snode (snode),
+ m_stmt (nullptr),
+ m_finder (nullptr),
+ m_loc (loc)
+ {
+ }
+
+ exploded_node *m_enode;
+ const supernode *m_snode;
+ const gimple *m_stmt;
+ const stmt_finder *m_finder;
+ location_t m_loc;
+};
+
/* A class with responsibility for saving pending diagnostics, so that
they can be emitted after the exploded_graph is complete.
This lets us de-duplicate diagnostics, and find the shortest path
@@ -119,17 +158,13 @@ public:
json::object *to_json () const;
bool add_diagnostic (const state_machine *sm,
- exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *finder,
+ const pending_location &ploc,
tree var,
const svalue *sval,
state_machine::state_t state,
std::unique_ptr<pending_diagnostic> d);
- bool add_diagnostic (exploded_node *enode,
- const supernode *snode, const gimple *stmt,
- const stmt_finder *finder,
+ bool add_diagnostic (const pending_location &ploc,
std::unique_ptr<pending_diagnostic> d);
void add_note (std::unique_ptr<pending_note> pn);
diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc
index 736a41e..4861ee5 100644
--- a/gcc/analyzer/engine.cc
+++ b/gcc/analyzer/engine.cc
@@ -129,9 +129,12 @@ impl_region_model_context::warn (std::unique_ptr<pending_diagnostic> d,
if (m_eg)
{
bool terminate_path = d->terminate_path_p ();
- if (m_eg->get_diagnostic_manager ().add_diagnostic
- (m_enode_for_diag, m_enode_for_diag->get_supernode (),
- m_stmt, curr_stmt_finder, std::move (d)))
+ pending_location ploc (m_enode_for_diag,
+ m_enode_for_diag->get_supernode (),
+ m_stmt,
+ curr_stmt_finder);
+ if (m_eg->get_diagnostic_manager ().add_diagnostic (ploc,
+ std::move (d)))
{
if (m_path_ctxt
&& terminate_path
@@ -398,8 +401,9 @@ public:
? m_old_smap->get_state (var_old_sval, m_eg.get_ext_state ())
: m_old_smap->get_global_state ());
bool terminate_path = d->terminate_path_p ();
+ pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
m_eg.get_diagnostic_manager ().add_diagnostic
- (&m_sm, m_enode_for_diag, snode, stmt, m_stmt_finder,
+ (&m_sm, ploc,
var, var_old_sval, current, std::move (d));
if (m_path_ctxt
&& terminate_path
@@ -418,8 +422,9 @@ public:
? m_old_smap->get_state (sval, m_eg.get_ext_state ())
: m_old_smap->get_global_state ());
bool terminate_path = d->terminate_path_p ();
+ pending_location ploc (m_enode_for_diag, snode, stmt, m_stmt_finder);
m_eg.get_diagnostic_manager ().add_diagnostic
- (&m_sm, m_enode_for_diag, snode, stmt, m_stmt_finder,
+ (&m_sm, ploc,
NULL_TREE, sval, current, std::move (d));
if (m_path_ctxt
&& terminate_path
@@ -898,10 +903,15 @@ impl_region_model_context::on_state_leak (const state_machine &sm,
tree leaked_tree_for_diag = fixup_tree_for_diagnostic (leaked_tree);
std::unique_ptr<pending_diagnostic> pd = sm.on_leak (leaked_tree_for_diag);
if (pd)
- m_eg->get_diagnostic_manager ().add_diagnostic
- (&sm, m_enode_for_diag, m_enode_for_diag->get_supernode (),
- m_stmt, &stmt_finder,
- leaked_tree_for_diag, sval, state, std::move (pd));
+ {
+ pending_location ploc (m_enode_for_diag,
+ m_enode_for_diag->get_supernode (),
+ m_stmt,
+ &stmt_finder);
+ m_eg->get_diagnostic_manager ().add_diagnostic
+ (&sm, ploc,
+ leaked_tree_for_diag, sval, state, std::move (pd));
+ }
}
/* Implementation of region_model_context::on_condition vfunc.
@@ -4697,7 +4707,7 @@ exploded_path::feasible_p (logger *logger,
eedge->m_src->m_index,
eedge->m_dest->m_index);
- rejected_constraint *rc = NULL;
+ std::unique_ptr <rejected_constraint> rc;
if (!state.maybe_update_for_edge (logger, eedge, &rc))
{
gcc_assert (rc);
@@ -4707,11 +4717,10 @@ exploded_path::feasible_p (logger *logger,
const program_point &src_point = src_enode.get_point ();
const gimple *last_stmt
= src_point.get_supernode ()->get_last_stmt ();
- *out = make_unique<feasibility_problem> (edge_idx, *eedge,
- last_stmt, rc);
+ *out = ::make_unique<feasibility_problem> (edge_idx, *eedge,
+ last_stmt,
+ std::move (rc));
}
- else
- delete rc;
return false;
}
@@ -4837,9 +4846,10 @@ feasibility_state::feasibility_state (const feasibility_state &other)
Otherwise, return false and write to *OUT_RC. */
bool
-feasibility_state::maybe_update_for_edge (logger *logger,
- const exploded_edge *eedge,
- rejected_constraint **out_rc)
+feasibility_state::
+maybe_update_for_edge (logger *logger,
+ const exploded_edge *eedge,
+ std::unique_ptr<rejected_constraint> *out_rc)
{
const exploded_node &src_enode = *eedge->m_src;
const program_point &src_point = src_enode.get_point ();
diff --git a/gcc/analyzer/exploded-graph.h b/gcc/analyzer/exploded-graph.h
index 6e9a5ef..cb64c2a 100644
--- a/gcc/analyzer/exploded-graph.h
+++ b/gcc/analyzer/exploded-graph.h
@@ -949,18 +949,17 @@ public:
feasibility_problem (unsigned eedge_idx,
const exploded_edge &eedge,
const gimple *last_stmt,
- rejected_constraint *rc)
+ std::unique_ptr<rejected_constraint> rc)
: m_eedge_idx (eedge_idx), m_eedge (eedge),
- m_last_stmt (last_stmt), m_rc (rc)
+ m_last_stmt (last_stmt), m_rc (std::move (rc))
{}
- ~feasibility_problem () { delete m_rc; }
void dump_to_pp (pretty_printer *pp) const;
unsigned m_eedge_idx;
const exploded_edge &m_eedge;
const gimple *m_last_stmt;
- rejected_constraint *m_rc;
+ std::unique_ptr<rejected_constraint> m_rc;
};
/* A class for capturing the state of a node when checking a path
@@ -975,7 +974,7 @@ public:
bool maybe_update_for_edge (logger *logger,
const exploded_edge *eedge,
- rejected_constraint **out_rc);
+ std::unique_ptr<rejected_constraint> *out_rc);
void update_for_stmt (const gimple *stmt);
const region_model &get_model () const { return m_model; }
diff --git a/gcc/analyzer/feasible-graph.cc b/gcc/analyzer/feasible-graph.cc
index d6ff1a3..d5e94b6 100644
--- a/gcc/analyzer/feasible-graph.cc
+++ b/gcc/analyzer/feasible-graph.cc
@@ -202,16 +202,15 @@ feasible_graph::add_node (const exploded_node *enode,
}
/* Add an infeasible_node to this graph and an infeasible_edge connecting
- to it from SRC_FNODE, capturing a failure of RC along EEDGE.
- Takes ownership of RC. */
+ to it from SRC_FNODE, capturing a failure of RC along EEDGE. */
void
feasible_graph::add_feasibility_problem (feasible_node *src_fnode,
const exploded_edge *eedge,
- rejected_constraint *rc)
+ std::unique_ptr<rejected_constraint> rc)
{
infeasible_node *dst_fnode
- = new infeasible_node (eedge->m_dest, m_nodes.length (), rc);
+ = new infeasible_node (eedge->m_dest, m_nodes.length (), std::move (rc));
digraph<fg_traits>::add_node (dst_fnode);
add_edge (new infeasible_edge (src_fnode, dst_fnode, eedge));
m_num_infeasible++;
diff --git a/gcc/analyzer/feasible-graph.h b/gcc/analyzer/feasible-graph.h
index 0da7265..4c9333d 100644
--- a/gcc/analyzer/feasible-graph.h
+++ b/gcc/analyzer/feasible-graph.h
@@ -120,18 +120,17 @@ class infeasible_node : public base_feasible_node
{
public:
infeasible_node (const exploded_node *inner_node, unsigned index,
- rejected_constraint *rc)
+ std::unique_ptr<rejected_constraint> rc)
: base_feasible_node (inner_node, index),
- m_rc (rc)
+ m_rc (std::move (rc))
{
}
- ~infeasible_node () { delete m_rc; }
void dump_dot (graphviz_out *gv,
const dump_args_t &args) const final override;
private:
- rejected_constraint *m_rc;
+ std::unique_ptr<rejected_constraint> m_rc;
};
/* Base class of edge within a feasible_graph. */
@@ -198,7 +197,7 @@ class feasible_graph : public digraph <fg_traits>
void add_feasibility_problem (feasible_node *src_fnode,
const exploded_edge *eedge,
- rejected_constraint *rc);
+ std::unique_ptr<rejected_constraint> rc);
std::unique_ptr<exploded_path> make_epath (feasible_node *fnode) const;
diff --git a/gcc/analyzer/infinite-recursion.cc b/gcc/analyzer/infinite-recursion.cc
index 3ba316e..9576ff5 100644
--- a/gcc/analyzer/infinite-recursion.cc
+++ b/gcc/analyzer/infinite-recursion.cc
@@ -625,8 +625,12 @@ exploded_graph::detect_infinite_recursion (exploded_node *enode)
const supernode *caller_snode = call_string.get_top_of_stack ().m_caller;
const supernode *snode = enode->get_supernode ();
gcc_assert (caller_snode->m_returning_call);
+ pending_location ploc (enode,
+ snode,
+ caller_snode->m_returning_call,
+ nullptr);
get_diagnostic_manager ().add_diagnostic
- (enode, snode, caller_snode->m_returning_call, NULL,
+ (ploc,
make_unique<infinite_recursion_diagnostic> (prev_entry_enode,
enode,
fndecl));
diff --git a/gcc/analyzer/region-model.cc b/gcc/analyzer/region-model.cc
index da1ec7c..c4e68661 100644
--- a/gcc/analyzer/region-model.cc
+++ b/gcc/analyzer/region-model.cc
@@ -729,6 +729,17 @@ region_model::get_gassign_result (const gassign *assign,
region_model_context *ctxt)
{
tree lhs = gimple_assign_lhs (assign);
+
+ if (gimple_has_volatile_ops (assign)
+ && !gimple_clobber_p (assign))
+ {
+ conjured_purge p (this, ctxt);
+ return m_mgr->get_or_create_conjured_svalue (TREE_TYPE (lhs),
+ assign,
+ get_lvalue (lhs, ctxt),
+ p);
+ }
+
tree rhs1 = gimple_assign_rhs1 (assign);
enum tree_code op = gimple_assign_rhs_code (assign);
switch (op)
@@ -4577,11 +4588,11 @@ region_model::add_constraint (const svalue *lhs,
bool
region_model::add_constraint (tree lhs, enum tree_code op, tree rhs,
region_model_context *ctxt,
- rejected_constraint **out)
+ std::unique_ptr<rejected_constraint> *out)
{
bool sat = add_constraint (lhs, op, rhs, ctxt);
if (!sat && out)
- *out = new rejected_op_constraint (*this, lhs, op, rhs);
+ *out = make_unique <rejected_op_constraint> (*this, lhs, op, rhs);
return sat;
}
@@ -4969,7 +4980,7 @@ bool
region_model::maybe_update_for_edge (const superedge &edge,
const gimple *last_stmt,
region_model_context *ctxt,
- rejected_constraint **out)
+ std::unique_ptr<rejected_constraint> *out)
{
/* Handle frame updates for interprocedural edges. */
switch (edge.m_kind)
@@ -5139,10 +5150,11 @@ region_model::replay_call_summary (call_summary_replay &r,
to it. */
bool
-region_model::apply_constraints_for_gcond (const cfg_superedge &sedge,
- const gcond *cond_stmt,
- region_model_context *ctxt,
- rejected_constraint **out)
+region_model::
+apply_constraints_for_gcond (const cfg_superedge &sedge,
+ const gcond *cond_stmt,
+ region_model_context *ctxt,
+ std::unique_ptr<rejected_constraint> *out)
{
::edge cfg_edge = sedge.get_cfg_edge ();
gcc_assert (cfg_edge != NULL);
@@ -5233,10 +5245,11 @@ has_nondefault_cases_for_all_enum_values_p (const gswitch *switch_stmt)
to it. */
bool
-region_model::apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
- const gswitch *switch_stmt,
- region_model_context *ctxt,
- rejected_constraint **out)
+region_model::
+apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
+ const gswitch *switch_stmt,
+ region_model_context *ctxt,
+ std::unique_ptr<rejected_constraint> *out)
{
tree index = gimple_switch_index (switch_stmt);
const svalue *index_sval = get_rvalue (index, ctxt);
@@ -5262,7 +5275,7 @@ region_model::apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
&& !ctxt->possibly_tainted_p (index_sval))
{
if (out)
- *out = new rejected_default_case (*this);
+ *out = make_unique <rejected_default_case> (*this);
return false;
}
@@ -5271,7 +5284,7 @@ region_model::apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
= ranges_mgr->get_or_create_ranges_for_switch (&edge, switch_stmt);
bool sat = m_constraints->add_bounded_ranges (index_sval, all_cases_ranges);
if (!sat && out)
- *out = new rejected_ranges_constraint (*this, index, all_cases_ranges);
+ *out = make_unique <rejected_ranges_constraint> (*this, index, all_cases_ranges);
if (sat && ctxt && !all_cases_ranges->empty_p ())
ctxt->on_bounded_ranges (*index_sval, *all_cases_ranges);
return sat;
@@ -5318,9 +5331,10 @@ region_model::apply_constraints_for_ggoto (const cfg_superedge &edge,
to it. */
bool
-region_model::apply_constraints_for_exception (const gimple *last_stmt,
- region_model_context *ctxt,
- rejected_constraint **out)
+region_model::
+apply_constraints_for_exception (const gimple *last_stmt,
+ region_model_context *ctxt,
+ std::unique_ptr<rejected_constraint> *out)
{
gcc_assert (last_stmt);
if (const gcall *call = dyn_cast <const gcall *> (last_stmt))
diff --git a/gcc/analyzer/region-model.h b/gcc/analyzer/region-model.h
index 62d4634..6946c68 100644
--- a/gcc/analyzer/region-model.h
+++ b/gcc/analyzer/region-model.h
@@ -331,7 +331,7 @@ class region_model
bool maybe_update_for_edge (const superedge &edge,
const gimple *last_stmt,
region_model_context *ctxt,
- rejected_constraint **out);
+ std::unique_ptr<rejected_constraint> *out);
void update_for_gcall (const gcall *call_stmt,
region_model_context *ctxt,
@@ -406,7 +406,7 @@ class region_model
region_model_context *ctxt);
bool add_constraint (tree lhs, enum tree_code op, tree rhs,
region_model_context *ctxt,
- rejected_constraint **out);
+ std::unique_ptr<rejected_constraint> *out);
const region *
get_or_create_region_for_heap_alloc (const svalue *size_in_bytes,
@@ -584,17 +584,17 @@ private:
bool apply_constraints_for_gcond (const cfg_superedge &edge,
const gcond *cond_stmt,
region_model_context *ctxt,
- rejected_constraint **out);
+ std::unique_ptr<rejected_constraint> *out);
bool apply_constraints_for_gswitch (const switch_cfg_superedge &edge,
const gswitch *switch_stmt,
region_model_context *ctxt,
- rejected_constraint **out);
+ std::unique_ptr<rejected_constraint> *out);
bool apply_constraints_for_ggoto (const cfg_superedge &edge,
const ggoto *goto_stmt,
region_model_context *ctxt);
bool apply_constraints_for_exception (const gimple *last_stmt,
region_model_context *ctxt,
- rejected_constraint **out);
+ std::unique_ptr<rejected_constraint> *out);
int poison_any_pointers_to_descendents (const region *reg,
enum poison_kind pkind);
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 32d133b..b2fbf3c 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,36 @@
+2023-09-12 Tobias Burnus <tobias@codesourcery.com>
+
+ * c-parser.cc (struct c_omp_loc_tree): New.
+ (c_check_omp_allocate_allocator_r): New; checking moved from ...
+ (c_parser_omp_allocate): ... here. Call it via walk_tree. Avoid
+ ICE with tree_to_shwi for invalid too-large value.
+
+2023-09-12 Tobias Burnus <tobias@codesourcery.com>
+
+ * c-parser.cc (c_parser_omp_construct): Move call to
+ c_parser_omp_allocate to ...
+ (c_parser_pragma): ... here.
+ (c_parser_omp_allocate): Avoid ICE is allocator could not be
+ parsed; set 'omp allocate' attribute for stack/automatic variables
+ and only reject static variables; add several additional
+ restriction checks.
+ * c-tree.h (c_mark_decl_jump_unsafe_in_current_scope): New prototype.
+ * c-decl.cc (decl_jump_unsafe): Return true for omp-allocated decls.
+ (c_mark_decl_jump_unsafe_in_current_scope): New.
+ (warn_about_goto, c_check_switch_jump_warnings): Add error for
+ omp-allocated decls.
+
+2023-09-12 Martin Uecker <uecker@tugraz.at>
+
+ * c-typeck.cc (struct comptypes_data): Add structure.
+ (tagged_types_tu_compatible_p,
+ function_types_compatible_p, type_lists_compatible_p,
+ comptypes_internal): Add structure to interface, change
+ return type to bool, and adapt calls.
+ (comptarget_types): Change return type too bool.
+ (comptypes, comptypes_check_enum_int,
+ comptypes_check_different_types): Adapt calls.
+
2023-09-06 Jakub Jelinek <jakub@redhat.com>
PR c/102989
diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
index 649c5ae6..5822faf 100644
--- a/gcc/c/c-decl.cc
+++ b/gcc/c/c-decl.cc
@@ -681,6 +681,11 @@ decl_jump_unsafe (tree decl)
if (VAR_P (decl) && C_DECL_COMPOUND_LITERAL_P (decl))
return false;
+ if (flag_openmp
+ && VAR_P (decl)
+ && lookup_attribute ("omp allocate", DECL_ATTRIBUTES (decl)))
+ return true;
+
/* Always warn about crossing variably modified types. */
if ((VAR_P (decl) || TREE_CODE (decl) == TYPE_DECL)
&& c_type_variably_modified_p (TREE_TYPE (decl)))
@@ -724,6 +729,15 @@ c_print_identifier (FILE *file, tree node, int indent)
c_binding_oracle = save;
}
+/* Establish that the scope contains declarations that are sensitive to
+ jumps that cross a binding. Together with decl_jump_unsafe, this is
+ used to diagnose such jumps. */
+void
+c_mark_decl_jump_unsafe_in_current_scope ()
+{
+ current_scope->has_jump_unsafe_decl = 1;
+}
+
/* Establish a binding between NAME, an IDENTIFIER_NODE, and DECL,
which may be any of several kinds of DECL or TYPE or error_mark_node,
in the scope SCOPE. */
@@ -3974,6 +3988,9 @@ warn_about_goto (location_t goto_loc, tree label, tree decl)
if (c_type_variably_modified_p (TREE_TYPE (decl)))
error_at (goto_loc,
"jump into scope of identifier with variably modified type");
+ else if (flag_openmp
+ && lookup_attribute ("omp allocate", DECL_ATTRIBUTES (decl)))
+ error_at (goto_loc, "jump skips OpenMP %<allocate%> allocation");
else
if (!warning_at (goto_loc, OPT_Wjump_misses_init,
"jump skips variable initialization"))
@@ -4253,6 +4270,15 @@ c_check_switch_jump_warnings (struct c_spot_bindings *switch_bindings,
"variably modified type"));
emitted = true;
}
+ else if (flag_openmp
+ && lookup_attribute ("omp allocate",
+ DECL_ATTRIBUTES (b->decl)))
+ {
+ saw_error = true;
+ error_at (case_loc,
+ "switch jumps over OpenMP %<allocate%> allocation");
+ emitted = true;
+ }
else
emitted
= warning_at (case_loc, OPT_Wjump_misses_init,
diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc
index c04962d..b9a1b75 100644
--- a/gcc/c/c-parser.cc
+++ b/gcc/c/c-parser.cc
@@ -1681,6 +1681,7 @@ static bool c_parser_omp_declare (c_parser *, enum pragma_context);
static void c_parser_omp_requires (c_parser *);
static bool c_parser_omp_error (c_parser *, enum pragma_context);
static void c_parser_omp_assumption_clauses (c_parser *, bool);
+static void c_parser_omp_allocate (c_parser *);
static void c_parser_omp_assumes (c_parser *);
static bool c_parser_omp_ordered (c_parser *, enum pragma_context, bool *);
static void c_parser_oacc_routine (c_parser *, enum pragma_context);
@@ -13649,6 +13650,10 @@ c_parser_pragma (c_parser *parser, enum pragma_context context, bool *if_p)
c_parser_omp_requires (parser);
return false;
+ case PRAGMA_OMP_ALLOCATE:
+ c_parser_omp_allocate (parser);
+ return false;
+
case PRAGMA_OMP_ASSUMES:
if (context != pragma_external)
{
@@ -19338,6 +19343,61 @@ c_parser_oacc_wait (location_t loc, c_parser *parser, char *p_name)
return stmt;
}
+struct c_omp_loc_tree
+{
+ location_t loc;
+ tree var;
+};
+
+/* Check whether the expression used in the allocator clause is declared or
+ modified between the variable declaration and its allocate directive. */
+static tree
+c_check_omp_allocate_allocator_r (tree *tp, int *, void *data)
+{
+ tree var = ((struct c_omp_loc_tree *) data)->var;
+ location_t loc = ((struct c_omp_loc_tree *) data)->loc;
+ if (TREE_CODE (*tp) == VAR_DECL && c_check_in_current_scope (*tp))
+ {
+ if (linemap_location_before_p (line_table, DECL_SOURCE_LOCATION (var),
+ DECL_SOURCE_LOCATION (*tp)))
+ {
+ error_at (loc, "variable %qD used in the %<allocator%> clause must "
+ "be declared before %qD", *tp, var);
+ inform (DECL_SOURCE_LOCATION (*tp), "declared here");
+ inform (DECL_SOURCE_LOCATION (var),
+ "to be allocated variable declared here");
+ return *tp;
+ }
+ else
+ {
+ gcc_assert (cur_stmt_list
+ && TREE_CODE (cur_stmt_list) == STATEMENT_LIST);
+
+ tree_stmt_iterator l = tsi_last (cur_stmt_list);
+ while (!tsi_end_p (l))
+ {
+ if (linemap_location_before_p (line_table, EXPR_LOCATION (*l),
+ DECL_SOURCE_LOCATION (var)))
+ break;
+ if (TREE_CODE (*l) == MODIFY_EXPR
+ && TREE_OPERAND (*l, 0) == *tp)
+ {
+ error_at (loc,
+ "variable %qD used in the %<allocator%> clause "
+ "must not be modified between declaration of %qD "
+ "and its %<allocate%> directive", *tp, var);
+ inform (EXPR_LOCATION (*l), "modified here");
+ inform (DECL_SOURCE_LOCATION (var),
+ "to be allocated variable declared here");
+ return *tp;
+ }
+ --l;
+ }
+ }
+ }
+ return NULL_TREE;
+}
+
/* OpenMP 5.x:
# pragma omp allocate (list) clauses
@@ -19348,10 +19408,13 @@ c_parser_oacc_wait (location_t loc, c_parser *parser, char *p_name)
align (constant-expression)] */
static void
-c_parser_omp_allocate (location_t loc, c_parser *parser)
+c_parser_omp_allocate (c_parser *parser)
{
tree alignment = NULL_TREE;
tree allocator = NULL_TREE;
+ c_parser_consume_pragma (parser);
+ location_t loc = c_parser_peek_token (parser)->location;
+ location_t allocator_loc = UNKNOWN_LOCATION;
tree nl = c_parser_omp_var_list_parens (parser, OMP_CLAUSE_ALLOCATE, NULL_TREE);
do
{
@@ -19376,7 +19439,9 @@ c_parser_omp_allocate (location_t loc, c_parser *parser)
c_expr expr = c_parser_expr_no_commas (parser, NULL);
expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
expr_loc = c_parser_peek_token (parser)->location;
- if (p[2] == 'i' && alignment)
+ if (expr.value == error_mark_node)
+ ;
+ else if (p[2] == 'i' && alignment)
{
error_at (expr_loc, "too many %qs clauses", "align");
break;
@@ -19403,6 +19468,7 @@ c_parser_omp_allocate (location_t loc, c_parser *parser)
else
{
allocator = c_fully_fold (expr.value, false, NULL);
+ allocator_loc = expr_loc;
tree orig_type
= expr.original_type ? expr.original_type : TREE_TYPE (allocator);
orig_type = TYPE_MAIN_VARIANT (orig_type);
@@ -19422,14 +19488,60 @@ c_parser_omp_allocate (location_t loc, c_parser *parser)
} while (true);
c_parser_skip_to_pragma_eol (parser);
- if (allocator || alignment)
- for (tree c = nl; c != NULL_TREE; c = OMP_CLAUSE_CHAIN (c))
- {
- OMP_CLAUSE_ALLOCATE_ALLOCATOR (c) = allocator;
- OMP_CLAUSE_ALLOCATE_ALIGN (c) = alignment;
- }
-
- sorry_at (loc, "%<#pragma omp allocate%> not yet supported");
+ c_mark_decl_jump_unsafe_in_current_scope ();
+ for (tree c = nl; c != NULL_TREE; c = OMP_CLAUSE_CHAIN (c))
+ {
+ tree var = OMP_CLAUSE_DECL (c);
+ if (TREE_CODE (var) == PARM_DECL)
+ {
+ error_at (OMP_CLAUSE_LOCATION (nl),
+ "function parameter %qD may not appear as list item in an "
+ "%<allocate%> directive", var);
+ continue;
+ }
+ if (!c_check_in_current_scope (var))
+ {
+ error_at (OMP_CLAUSE_LOCATION (nl),
+ "%<allocate%> directive must be in the same scope as %qD",
+ var);
+ inform (DECL_SOURCE_LOCATION (var), "declared here");
+ continue;
+ }
+ if (lookup_attribute ("omp allocate", DECL_ATTRIBUTES (var)))
+ {
+ error_at (OMP_CLAUSE_LOCATION (nl),
+ "%qD already appeared as list item in an "
+ "%<allocate%> directive", var);
+ continue;
+ }
+ if (TREE_STATIC (var))
+ {
+ if (allocator == NULL_TREE && allocator_loc == UNKNOWN_LOCATION)
+ error_at (loc, "%<allocator%> clause required for "
+ "static variable %qD", var);
+ else if (allocator
+ && (wi::to_widest (allocator) < 1
+ || wi::to_widest (allocator) > 8))
+ /* 8 = largest predefined memory allocator. */
+ error_at (allocator_loc,
+ "%<allocator%> clause requires a predefined allocator as "
+ "%qD is static", var);
+ else
+ sorry_at (OMP_CLAUSE_LOCATION (nl),
+ "%<#pragma omp allocate%> for static variables like "
+ "%qD not yet supported", var);
+ continue;
+ }
+ if (allocator)
+ {
+ struct c_omp_loc_tree data
+ = {EXPR_LOC_OR_LOC (allocator, OMP_CLAUSE_LOCATION (nl)), var};
+ walk_tree (&allocator, c_check_omp_allocate_allocator_r, &data, NULL);
+ }
+ DECL_ATTRIBUTES (var) = tree_cons (get_identifier ("omp allocate"),
+ build_tree_list (allocator, alignment),
+ DECL_ATTRIBUTES (var));
+ }
}
/* OpenMP 2.5:
@@ -24926,9 +25038,6 @@ c_parser_omp_construct (c_parser *parser, bool *if_p)
strcpy (p_name, "#pragma wait");
stmt = c_parser_oacc_wait (loc, parser, p_name);
break;
- case PRAGMA_OMP_ALLOCATE:
- c_parser_omp_allocate (loc, parser);
- return;
case PRAGMA_OMP_ATOMIC:
c_parser_omp_atomic (loc, parser, false);
return;
diff --git a/gcc/c/c-tree.h b/gcc/c/c-tree.h
index f928137..2664354 100644
--- a/gcc/c/c-tree.h
+++ b/gcc/c/c-tree.h
@@ -626,6 +626,7 @@ extern unsigned int start_underspecified_init (location_t, tree);
extern void finish_underspecified_init (tree, unsigned int);
extern void push_scope (void);
extern tree pop_scope (void);
+extern void c_mark_decl_jump_unsafe_in_current_scope ();
extern void c_bindings_start_stmt_expr (struct c_spot_bindings *);
extern void c_bindings_end_stmt_expr (struct c_spot_bindings *);
diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
index e2bfd2c..e55e887 100644
--- a/gcc/c/c-typeck.cc
+++ b/gcc/c/c-typeck.cc
@@ -90,12 +90,14 @@ static bool require_constant_elements;
static bool require_constexpr_value;
static tree qualify_type (tree, tree);
-static int tagged_types_tu_compatible_p (const_tree, const_tree, bool *,
- bool *);
-static int comp_target_types (location_t, tree, tree);
-static int function_types_compatible_p (const_tree, const_tree, bool *,
- bool *);
-static int type_lists_compatible_p (const_tree, const_tree, bool *, bool *);
+struct comptypes_data;
+static bool tagged_types_tu_compatible_p (const_tree, const_tree,
+ struct comptypes_data *);
+static bool comp_target_types (location_t, tree, tree);
+static bool function_types_compatible_p (const_tree, const_tree,
+ struct comptypes_data *);
+static bool type_lists_compatible_p (const_tree, const_tree,
+ struct comptypes_data *);
static tree lookup_field (tree, tree);
static int convert_arguments (location_t, vec<location_t>, tree,
vec<tree, va_gc> *, vec<tree, va_gc> *, tree,
@@ -125,7 +127,8 @@ static tree find_init_member (tree, struct obstack *);
static void readonly_warning (tree, enum lvalue_use);
static int lvalue_or_else (location_t, const_tree, enum lvalue_use);
static void record_maybe_used_decl (tree);
-static int comptypes_internal (const_tree, const_tree, bool *, bool *);
+static bool comptypes_internal (const_tree, const_tree,
+ struct comptypes_data *data);
/* Return true if EXP is a null pointer constant, false otherwise. */
@@ -653,7 +656,7 @@ composite_type (tree t1, tree t2)
possibly differently qualified versions of compatible types.
We assume that comp_target_types has already been done and returned
- nonzero; if that isn't so, this may crash. */
+ true; if that isn't so, this may crash. */
static tree
common_pointer_type (tree t1, tree t2)
@@ -707,7 +710,7 @@ common_pointer_type (tree t1, tree t2)
/* If the two named address spaces are different, determine the common
superset address space. This is guaranteed to exist due to the
- assumption that comp_target_type returned non-zero. */
+ assumption that comp_target_type returned true. */
as1 = TYPE_ADDR_SPACE (pointed_to_1);
as2 = TYPE_ADDR_SPACE (pointed_to_2);
if (!addr_space_superset (as1, as2, &as_common))
@@ -1061,6 +1064,13 @@ common_type (tree t1, tree t2)
return c_common_type (t1, t2);
}
+struct comptypes_data {
+
+ bool enum_and_int_p;
+ bool different_types_p;
+ bool warning_needed;
+};
+
/* Return 1 if TYPE1 and TYPE2 are compatible types for assignment
or various other operations. Return 2 if they are compatible
but a warning may be needed if you use them together. */
@@ -1069,12 +1079,13 @@ int
comptypes (tree type1, tree type2)
{
const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
- int val;
- val = comptypes_internal (type1, type2, NULL, NULL);
+ struct comptypes_data data = { };
+ bool ret = comptypes_internal (type1, type2, &data);
+
free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
- return val;
+ return ret ? (data.warning_needed ? 2 : 1) : 0;
}
/* Like comptypes, but if it returns non-zero because enum and int are
@@ -1084,12 +1095,14 @@ int
comptypes_check_enum_int (tree type1, tree type2, bool *enum_and_int_p)
{
const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
- int val;
- val = comptypes_internal (type1, type2, enum_and_int_p, NULL);
+ struct comptypes_data data = { };
+ bool ret = comptypes_internal (type1, type2, &data);
+ *enum_and_int_p = data.enum_and_int_p;
+
free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
- return val;
+ return ret ? (data.warning_needed ? 2 : 1) : 0;
}
/* Like comptypes, but if it returns nonzero for different types, it
@@ -1100,40 +1113,40 @@ comptypes_check_different_types (tree type1, tree type2,
bool *different_types_p)
{
const struct tagged_tu_seen_cache * tagged_tu_seen_base1 = tagged_tu_seen_base;
- int val;
- val = comptypes_internal (type1, type2, NULL, different_types_p);
+ struct comptypes_data data = { };
+ bool ret = comptypes_internal (type1, type2, &data);
+ *different_types_p = data.different_types_p;
+
free_all_tagged_tu_seen_up_to (tagged_tu_seen_base1);
- return val;
+ return ret ? (data.warning_needed ? 2 : 1) : 0;
}
-/* Return 1 if TYPE1 and TYPE2 are compatible types for assignment
- or various other operations. Return 2 if they are compatible
- but a warning may be needed if you use them together. If
- ENUM_AND_INT_P is not NULL, and one type is an enum and the other a
- compatible integer type, then this sets *ENUM_AND_INT_P to true;
- *ENUM_AND_INT_P is never set to false. If DIFFERENT_TYPES_P is not
- NULL, and the types are compatible but different enough not to be
+/* Return true if TYPE1 and TYPE2 are compatible types for assignment
+ or various other operations. If they are compatible but a warning may
+ be needed if you use them together, 'warning_needed' in DATA is set.
+ If one type is an enum and the other a compatible integer type, then
+ this sets 'enum_and_int_p' in DATA to true (it is never set to
+ false). If the types are compatible but different enough not to be
permitted in C11 typedef redeclarations, then this sets
- *DIFFERENT_TYPES_P to true; *DIFFERENT_TYPES_P is never set to
+ 'different_types_p' in DATA to true; it is never set to
false, but may or may not be set if the types are incompatible.
This differs from comptypes, in that we don't free the seen
types. */
-static int
-comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
- bool *different_types_p)
+static bool
+comptypes_internal (const_tree type1, const_tree type2,
+ struct comptypes_data *data)
{
const_tree t1 = type1;
const_tree t2 = type2;
- int attrval, val;
/* Suppress errors caused by previously reported errors. */
if (t1 == t2 || !t1 || !t2
|| TREE_CODE (t1) == ERROR_MARK || TREE_CODE (t2) == ERROR_MARK)
- return 1;
+ return true;
/* Enumerated types are compatible with integer types, but this is
not transitive: two enumerated types in the same translation unit
@@ -1146,10 +1159,8 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
t1 = ENUM_UNDERLYING_TYPE (t1);
if (TREE_CODE (t2) != VOID_TYPE)
{
- if (enum_and_int_p != NULL)
- *enum_and_int_p = true;
- if (different_types_p != NULL)
- *different_types_p = true;
+ data->enum_and_int_p = true;
+ data->different_types_p = true;
}
}
else if (TREE_CODE (t2) == ENUMERAL_TYPE
@@ -1159,25 +1170,23 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
t2 = ENUM_UNDERLYING_TYPE (t2);
if (TREE_CODE (t1) != VOID_TYPE)
{
- if (enum_and_int_p != NULL)
- *enum_and_int_p = true;
- if (different_types_p != NULL)
- *different_types_p = true;
+ data->enum_and_int_p = true;
+ data->different_types_p = true;
}
}
if (t1 == t2)
- return 1;
+ return true;
/* Different classes of types can't be compatible. */
if (TREE_CODE (t1) != TREE_CODE (t2))
- return 0;
+ return false;
/* Qualifiers must match. C99 6.7.3p9 */
if (TYPE_QUALS (t1) != TYPE_QUALS (t2))
- return 0;
+ return false;
/* Allow for two different type nodes which have essentially the same
definition. Note that we already checked for equality of the type
@@ -1185,14 +1194,16 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
if (TREE_CODE (t1) != ARRAY_TYPE
&& TYPE_MAIN_VARIANT (t1) == TYPE_MAIN_VARIANT (t2))
- return 1;
+ return true;
+
+ int attrval;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
if (!(attrval = comp_type_attributes (t1, t2)))
- return 0;
+ return false;
- /* 1 if no need for warning yet, 2 if warning cause has been seen. */
- val = 0;
+ if (2 == attrval)
+ data->warning_needed = true;
switch (TREE_CODE (t1))
{
@@ -1219,16 +1230,11 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
case POINTER_TYPE:
/* Do not remove mode information. */
if (TYPE_MODE (t1) != TYPE_MODE (t2))
- break;
- val = (TREE_TYPE (t1) == TREE_TYPE (t2)
- ? 1 : comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
- enum_and_int_p, different_types_p));
- break;
+ return false;
+ return comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data);
case FUNCTION_TYPE:
- val = function_types_compatible_p (t1, t2, enum_and_int_p,
- different_types_p);
- break;
+ return function_types_compatible_p (t1, t2, data);
case ARRAY_TYPE:
{
@@ -1236,21 +1242,16 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
tree d2 = TYPE_DOMAIN (t2);
bool d1_variable, d2_variable;
bool d1_zero, d2_zero;
- val = 1;
/* Target types must match incl. qualifiers. */
- if (TREE_TYPE (t1) != TREE_TYPE (t2)
- && (val = comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
- enum_and_int_p,
- different_types_p)) == 0)
- return 0;
-
- if (different_types_p != NULL
- && (d1 == NULL_TREE) != (d2 == NULL_TREE))
- *different_types_p = true;
+ if (!comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data))
+ return false;
+
+ if ((d1 == NULL_TREE) != (d2 == NULL_TREE))
+ data->different_types_p = true;
/* Sizes must match unless one is missing or variable. */
if (d1 == NULL_TREE || d2 == NULL_TREE || d1 == d2)
- break;
+ return true;
d1_zero = !TYPE_MAX_VALUE (d1);
d2_zero = !TYPE_MAX_VALUE (d2);
@@ -1264,59 +1265,45 @@ comptypes_internal (const_tree type1, const_tree type2, bool *enum_and_int_p,
d1_variable = d1_variable || (d1_zero && C_TYPE_VARIABLE_SIZE (t1));
d2_variable = d2_variable || (d2_zero && C_TYPE_VARIABLE_SIZE (t2));
- if (different_types_p != NULL
- && d1_variable != d2_variable)
- *different_types_p = true;
+ if (d1_variable != d2_variable)
+ data->different_types_p = true;
if (d1_variable || d2_variable)
- break;
+ return true;
if (d1_zero && d2_zero)
- break;
+ return true;
if (d1_zero || d2_zero
|| !tree_int_cst_equal (TYPE_MIN_VALUE (d1), TYPE_MIN_VALUE (d2))
|| !tree_int_cst_equal (TYPE_MAX_VALUE (d1), TYPE_MAX_VALUE (d2)))
- val = 0;
+ return false;
- break;
+ return true;
}
case ENUMERAL_TYPE:
case RECORD_TYPE:
case UNION_TYPE:
- if (val != 1 && false)
+ if (false)
{
- tree a1 = TYPE_ATTRIBUTES (t1);
- tree a2 = TYPE_ATTRIBUTES (t2);
-
- if (! attribute_list_contained (a1, a2)
- && ! attribute_list_contained (a2, a1))
- break;
-
- val = tagged_types_tu_compatible_p (t1, t2, enum_and_int_p,
- different_types_p);
-
- if (attrval != 2)
- return val;
+ return tagged_types_tu_compatible_p (t1, t2, data);
}
- break;
+ return false;
case VECTOR_TYPE:
- val = (known_eq (TYPE_VECTOR_SUBPARTS (t1), TYPE_VECTOR_SUBPARTS (t2))
- && comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2),
- enum_and_int_p, different_types_p));
- break;
+ return known_eq (TYPE_VECTOR_SUBPARTS (t1), TYPE_VECTOR_SUBPARTS (t2))
+ && comptypes_internal (TREE_TYPE (t1), TREE_TYPE (t2), data);
default:
- break;
+ return false;
}
- return attrval == 2 && val == 1 ? 2 : val;
+ gcc_unreachable ();
}
-/* Return 1 if TTL and TTR are pointers to types that are equivalent, ignoring
+/* Return true if TTL and TTR are pointers to types that are equivalent, ignoring
their qualifiers, except for named address spaces. If the pointers point to
different named addresses, then we must determine if one address space is a
subset of the other. */
-static int
+static bool
comp_target_types (location_t location, tree ttl, tree ttr)
{
int val;
@@ -1416,19 +1403,15 @@ free_all_tagged_tu_seen_up_to (const struct tagged_tu_seen_cache *tu_til)
tagged_tu_seen_base = tu_til;
}
-/* Return 1 if two 'struct', 'union', or 'enum' types T1 and T2 are
- compatible. If the two types are not the same (which has been
- checked earlier), this can only happen when multiple translation
- units are being compiled. See C99 6.2.7 paragraph 1 for the exact
- rules. ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in
- comptypes_internal. */
+/* Return true if two 'struct', 'union', or 'enum' types T1 and T2 are
+ compatible. The two types are not the same (which has been
+ checked earlier in comptypes_internal). */
-static int
+static bool
tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
- bool *enum_and_int_p, bool *different_types_p)
+ struct comptypes_data *data)
{
tree s1, s2;
- bool needs_warning = false;
/* We have to verify that the tags of the types are the same. This
is harder than it looks because this may be a typedef, so we have
@@ -1536,8 +1519,7 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
if (DECL_NAME (s1) != DECL_NAME (s2))
break;
- result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
- enum_and_int_p, different_types_p);
+ result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data);
if (result != 1 && !DECL_NAME (s1))
break;
@@ -1546,8 +1528,6 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
tu->val = 0;
return 0;
}
- if (result == 2)
- needs_warning = true;
if (TREE_CODE (s1) == FIELD_DECL
&& simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
@@ -1559,7 +1539,6 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
}
if (!s1 && !s2)
{
- tu->val = needs_warning ? 2 : 1;
return tu->val;
}
@@ -1573,8 +1552,7 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
int result;
result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
- enum_and_int_p,
- different_types_p);
+ data);
if (result != 1 && !DECL_NAME (s1))
continue;
@@ -1583,8 +1561,6 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
tu->val = 0;
return 0;
}
- if (result == 2)
- needs_warning = true;
if (TREE_CODE (s1) == FIELD_DECL
&& simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
@@ -1600,7 +1576,6 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
return 0;
}
}
- tu->val = needs_warning ? 2 : 1;
return tu->val;
}
@@ -1622,12 +1597,9 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
if (TREE_CODE (s1) != TREE_CODE (s2)
|| DECL_NAME (s1) != DECL_NAME (s2))
break;
- result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2),
- enum_and_int_p, different_types_p);
+ result = comptypes_internal (TREE_TYPE (s1), TREE_TYPE (s2), data);
if (result == 0)
break;
- if (result == 2)
- needs_warning = true;
if (TREE_CODE (s1) == FIELD_DECL
&& simple_cst_equal (DECL_FIELD_BIT_OFFSET (s1),
@@ -1637,7 +1609,7 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
if (s1 && s2)
tu->val = 0;
else
- tu->val = needs_warning ? 2 : 1;
+ tu->val = 1;
return tu->val;
}
@@ -1646,17 +1618,16 @@ tagged_types_tu_compatible_p (const_tree t1, const_tree t2,
}
}
-/* Return 1 if two function types F1 and F2 are compatible.
+/* Return true if two function types F1 and F2 are compatible.
If either type specifies no argument types,
the other must specify a fixed number of self-promoting arg types.
Otherwise, if one type specifies only the number of arguments,
the other must specify that number of self-promoting arg types.
- Otherwise, the argument types must match.
- ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in comptypes_internal. */
+ Otherwise, the argument types must match. */
-static int
+static bool
function_types_compatible_p (const_tree f1, const_tree f2,
- bool *enum_and_int_p, bool *different_types_p)
+ struct comptypes_data *data)
{
tree args1, args2;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
@@ -1677,16 +1648,15 @@ function_types_compatible_p (const_tree f1, const_tree f2,
if (TYPE_VOLATILE (ret2))
ret2 = build_qualified_type (TYPE_MAIN_VARIANT (ret2),
TYPE_QUALS (ret2) & ~TYPE_QUAL_VOLATILE);
- val = comptypes_internal (ret1, ret2, enum_and_int_p, different_types_p);
+ val = comptypes_internal (ret1, ret2, data);
if (val == 0)
return 0;
args1 = TYPE_ARG_TYPES (f1);
args2 = TYPE_ARG_TYPES (f2);
- if (different_types_p != NULL
- && (args1 == NULL_TREE) != (args2 == NULL_TREE))
- *different_types_p = true;
+ if ((args1 == NULL_TREE) != (args2 == NULL_TREE))
+ data->different_types_p = true;
/* An unspecified parmlist matches any specified parmlist
whose argument types don't need default promotions. */
@@ -1702,8 +1672,11 @@ function_types_compatible_p (const_tree f1, const_tree f2,
If they don't match, ask for a warning (but no error). */
if (TYPE_ACTUAL_ARG_TYPES (f1)
&& type_lists_compatible_p (args2, TYPE_ACTUAL_ARG_TYPES (f1),
- enum_and_int_p, different_types_p) != 1)
- val = 2;
+ data) != 1)
+ {
+ val = 1;
+ data->warning_needed = true;
+ }
return val;
}
if (args2 == NULL_TREE)
@@ -1714,35 +1687,31 @@ function_types_compatible_p (const_tree f1, const_tree f2,
return 0;
if (TYPE_ACTUAL_ARG_TYPES (f2)
&& type_lists_compatible_p (args1, TYPE_ACTUAL_ARG_TYPES (f2),
- enum_and_int_p, different_types_p) != 1)
- val = 2;
+ data) != 1)
+ {
+ val = 1;
+ data->warning_needed = true;
+ }
return val;
}
/* Both types have argument lists: compare them and propagate results. */
- val1 = type_lists_compatible_p (args1, args2, enum_and_int_p,
- different_types_p);
- return val1 != 1 ? val1 : val;
+ val1 = type_lists_compatible_p (args1, args2, data);
+ return val1;
}
-/* Check two lists of types for compatibility, returning 0 for
- incompatible, 1 for compatible, or 2 for compatible with
- warning. ENUM_AND_INT_P and DIFFERENT_TYPES_P are as in
- comptypes_internal. */
+/* Check two lists of types for compatibility, returning false for
+ incompatible, true for compatible. */
-static int
+static bool
type_lists_compatible_p (const_tree args1, const_tree args2,
- bool *enum_and_int_p, bool *different_types_p)
+ struct comptypes_data *data)
{
- /* 1 if no need for warning yet, 2 if warning cause has been seen. */
- int val = 1;
- int newval = 0;
-
while (1)
{
tree a1, mv1, a2, mv2;
if (args1 == NULL_TREE && args2 == NULL_TREE)
- return val;
+ return true;
/* If one list is shorter than the other,
they fail to match. */
if (args1 == NULL_TREE || args2 == NULL_TREE)
@@ -1763,9 +1732,8 @@ type_lists_compatible_p (const_tree args1, const_tree args2,
means there is supposed to be an argument
but nothing is specified about what type it has.
So match anything that self-promotes. */
- if (different_types_p != NULL
- && (a1 == NULL_TREE) != (a2 == NULL_TREE))
- *different_types_p = true;
+ if ((a1 == NULL_TREE) != (a2 == NULL_TREE))
+ data->different_types_p = true;
if (a1 == NULL_TREE)
{
if (c_type_promotes_to (a2) != a2)
@@ -1780,11 +1748,9 @@ type_lists_compatible_p (const_tree args1, const_tree args2,
else if (TREE_CODE (a1) == ERROR_MARK
|| TREE_CODE (a2) == ERROR_MARK)
;
- else if (!(newval = comptypes_internal (mv1, mv2, enum_and_int_p,
- different_types_p)))
+ else if (!comptypes_internal (mv1, mv2, data))
{
- if (different_types_p != NULL)
- *different_types_p = true;
+ data->different_types_p = true;
/* Allow wait (union {union wait *u; int *i} *)
and wait (union wait *) to be compatible. */
if (TREE_CODE (a1) == UNION_TYPE
@@ -1805,8 +1771,7 @@ type_lists_compatible_p (const_tree args1, const_tree args2,
? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
TYPE_QUAL_ATOMIC)
: TYPE_MAIN_VARIANT (mv3));
- if (comptypes_internal (mv3, mv2, enum_and_int_p,
- different_types_p))
+ if (comptypes_internal (mv3, mv2, data))
break;
}
if (memb == NULL_TREE)
@@ -1830,8 +1795,7 @@ type_lists_compatible_p (const_tree args1, const_tree args2,
? c_build_qualified_type (TYPE_MAIN_VARIANT (mv3),
TYPE_QUAL_ATOMIC)
: TYPE_MAIN_VARIANT (mv3));
- if (comptypes_internal (mv3, mv1, enum_and_int_p,
- different_types_p))
+ if (comptypes_internal (mv3, mv1, data))
break;
}
if (memb == NULL_TREE)
@@ -1841,10 +1805,6 @@ type_lists_compatible_p (const_tree args1, const_tree args2,
return 0;
}
- /* comptypes said ok, but record if it said to warn. */
- if (newval > val)
- val = newval;
-
args1 = TREE_CHAIN (args1);
args2 = TREE_CHAIN (args2);
}
@@ -7335,7 +7295,7 @@ convert_for_assignment (location_t location, location_t expr_loc, tree type,
tree mvl = ttl;
tree mvr = ttr;
bool is_opaque_pointer;
- int target_cmp = 0; /* Cache comp_target_types () result. */
+ bool target_cmp = false; /* Cache comp_target_types () result. */
addr_space_t asl;
addr_space_t asr;
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 9f086d1..ee46d96 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -541,7 +541,8 @@ pru-*-*)
;;
riscv*)
cpu_type=riscv
- extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o riscv-selftests.o riscv-v.o riscv-vsetvl.o riscv-vector-costs.o"
+ extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o riscv-selftests.o riscv-string.o"
+ extra_objs="${extra_objs} riscv-v.o riscv-vsetvl.o riscv-vector-costs.o"
extra_objs="${extra_objs} riscv-vector-builtins.o riscv-vector-builtins-shapes.o riscv-vector-builtins-bases.o"
extra_objs="${extra_objs} thead.o"
d_target_objs="riscv-d.o"
@@ -2525,7 +2526,7 @@ loongarch*-*-linux*)
tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h"
extra_options="${extra_options} linux-android.opt"
- tmake_file="${tmake_file} loongarch/t-linux"
+ tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux"
gnu_ld=yes
gas=yes
@@ -2537,7 +2538,7 @@ loongarch*-*-linux*)
loongarch*-*-elf*)
tm_file="elfos.h newlib-stdint.h ${tm_file}"
tm_file="${tm_file} loongarch/elf.h loongarch/linux.h"
- tmake_file="${tmake_file} loongarch/t-linux"
+ tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux"
gnu_ld=yes
gas=yes
@@ -5214,7 +5215,7 @@ case "${target}" in
loongarch_multilib_list_sane=no
# This one goes to TM_MULTILIB_CONFIG, for use in t-linux.
- loongarch_multilib_list_make=""
+ loongarch_multilib_list_make="${abi_base},"
# This one goes to tm_defines, for use in loongarch-driver.c.
loongarch_multilib_list_c=""
diff --git a/gcc/config/aarch64/aarch64-cores.def b/gcc/config/aarch64/aarch64-cores.def
index 73976e9..dd47423 100644
--- a/gcc/config/aarch64/aarch64-cores.def
+++ b/gcc/config/aarch64/aarch64-cores.def
@@ -115,8 +115,8 @@ AARCH64_CORE("cortex-a65", cortexa65, cortexa53, V8_2A, (F16, RCPC, DOTPROD, S
AARCH64_CORE("cortex-a65ae", cortexa65ae, cortexa53, V8_2A, (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd43, -1)
AARCH64_CORE("cortex-x1", cortexx1, cortexa57, V8_2A, (F16, RCPC, DOTPROD, SSBS, PROFILE), neoversen1, 0x41, 0xd44, -1)
AARCH64_CORE("cortex-x1c", cortexx1c, cortexa57, V8_2A, (F16, RCPC, DOTPROD, SSBS, PROFILE, PAUTH), neoversen1, 0x41, 0xd4c, -1)
-AARCH64_CORE("ares", ares, cortexa57, V8_2A, (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
AARCH64_CORE("neoverse-n1", neoversen1, cortexa57, V8_2A, (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
+AARCH64_CORE("ares", ares, cortexa57, V8_2A, (F16, RCPC, DOTPROD, PROFILE), neoversen1, 0x41, 0xd0c, -1)
AARCH64_CORE("neoverse-e1", neoversee1, cortexa53, V8_2A, (F16, RCPC, DOTPROD, SSBS), cortexa73, 0x41, 0xd4a, -1)
/* Cavium ('C') cores. */
@@ -143,8 +143,8 @@ AARCH64_CORE("thunderx3t110", thunderx3t110, thunderx3t110, V8_3A, (CRYPTO, S
/* ARMv8.4-A Architecture Processors. */
/* Arm ('A') cores. */
-AARCH64_CORE("zeus", zeus, cortexa57, V8_4A, (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, V8_4A, (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
+AARCH64_CORE("zeus", zeus, cortexa57, V8_4A, (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoversev1, 0x41, 0xd40, -1)
AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, V8_4A, (SVE, I8MM, BF16, PROFILE, SSBS, RNG), neoverse512tvb, INVALID_IMP, INVALID_CORE, -1)
/* Qualcomm ('Q') cores. */
@@ -184,7 +184,7 @@ AARCH64_CORE("cortex-x3", cortexx3, cortexa57, V9A, (SVE2_BITPERM, MEMTAG, I8M
AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversen2, 0x41, 0xd49, -1)
-AARCH64_CORE("demeter", demeter, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
+AARCH64_CORE("demeter", demeter, cortexa57, V9A, (I8MM, BF16, SVE2_BITPERM, RNG, MEMTAG, PROFILE), neoversev2, 0x41, 0xd4f, -1)
#undef AARCH64_CORE
diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md
index da5534c..b223e7d 100644
--- a/gcc/config/aarch64/aarch64-sve.md
+++ b/gcc/config/aarch64/aarch64-sve.md
@@ -2611,11 +2611,18 @@
)
;; Duplicate an Advanced SIMD vector to fill an SVE vector (LE version).
+;;
+;; The addressing mode range of LD1RQ does not match the addressing mode
+;; range of LDR Qn. If the predicate enforced the LD1RQ range, we would
+;; not be able to combine LDR Qns outside that range. The predicate
+;; therefore accepts all memory operands, with only the constraints
+;; enforcing the actual restrictions. If the instruction is split
+;; before RA, we need to load invalid addresses into a temporary.
(define_insn_and_split "@aarch64_vec_duplicate_vq<mode>_le"
[(set (match_operand:SVE_FULL 0 "register_operand" "=w, w")
(vec_duplicate:SVE_FULL
- (match_operand:<V128> 1 "aarch64_sve_dup_ld1rq_operand" "w, UtQ")))
+ (match_operand:<V128> 1 "nonimmediate_operand" "w, UtQ")))
(clobber (match_scratch:VNx16BI 2 "=X, Upl"))]
"TARGET_SVE && !BYTES_BIG_ENDIAN"
{
@@ -2633,6 +2640,12 @@
"&& MEM_P (operands[1])"
[(const_int 0)]
{
+ if (can_create_pseudo_p ()
+ && !aarch64_sve_ld1rq_operand (operands[1], <V128>mode))
+ {
+ rtx addr = force_reg (Pmode, XEXP (operands[1], 0));
+ operands[1] = replace_equiv_address (operands[1], addr);
+ }
if (GET_CODE (operands[2]) == SCRATCH)
operands[2] = gen_reg_rtx (VNx16BImode);
emit_move_insn (operands[2], CONSTM1_RTX (VNx16BImode));
diff --git a/gcc/config/aarch64/aarch64-tune.md b/gcc/config/aarch64/aarch64-tune.md
index 12d610f..ccfcad5 100644
--- a/gcc/config/aarch64/aarch64-tune.md
+++ b/gcc/config/aarch64/aarch64-tune.md
@@ -1,5 +1,5 @@
;; -*- buffer-read-only: t -*-
;; Generated automatically by gentune.sh from aarch64-cores.def
(define_attr "tune"
- "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,neoversen2,demeter,neoversev2"
+ "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,cortexx1c,neoversen1,ares,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,neoversev1,zeus,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa520,cortexa710,cortexa715,cortexa720,cortexx2,cortexx3,neoversen2,neoversev2,demeter"
(const (symbol_ref "((enum attr_tune) aarch64_tune)")))
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 37d4140..219c4ee 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -5640,7 +5640,7 @@ aarch64_internal_mov_immediate (rtx dest, rtx imm, bool generate,
machine_mode mode)
{
int i;
- unsigned HOST_WIDE_INT val, val2, mask;
+ unsigned HOST_WIDE_INT val, val2, val3, mask;
int one_match, zero_match;
int num_insns;
@@ -5722,6 +5722,35 @@ aarch64_internal_mov_immediate (rtx dest, rtx imm, bool generate,
}
return 3;
}
+
+ /* Try shifting and inserting the bottom 32-bits into the top bits. */
+ val2 = val & 0xffffffff;
+ val3 = 0xffffffff;
+ val3 = val2 | (val3 << 32);
+ for (i = 17; i < 48; i++)
+ if ((val2 | (val2 << i)) == val)
+ {
+ if (generate)
+ {
+ emit_insn (gen_rtx_SET (dest, GEN_INT (val2 & 0xffff)));
+ emit_insn (gen_insv_immdi (dest, GEN_INT (16),
+ GEN_INT (val2 >> 16)));
+ emit_insn (gen_ior_ashldi3 (dest, dest, GEN_INT (i), dest));
+ }
+ return 3;
+ }
+ else if ((val3 & ~(val3 << i)) == val)
+ {
+ if (generate)
+ {
+ emit_insn (gen_rtx_SET (dest, GEN_INT (val3 | 0xffff0000)));
+ emit_insn (gen_insv_immdi (dest, GEN_INT (16),
+ GEN_INT (val2 >> 16)));
+ emit_insn (gen_and_one_cmpl_ashldi3 (dest, dest, GEN_INT (i),
+ dest));
+ }
+ return 3;
+ }
}
/* Generate 2-4 instructions, skipping 16 bits of all zeroes or ones which
@@ -8433,18 +8462,32 @@ aarch64_needs_frame_chain (void)
return aarch64_use_frame_pointer;
}
+/* Return true if the current function should save registers above
+ the locals area, rather than below it. */
+
+static bool
+aarch64_save_regs_above_locals_p ()
+{
+ /* When using stack smash protection, make sure that the canary slot
+ comes between the locals and the saved registers. Otherwise,
+ it would be possible for a carefully sized smash attack to change
+ the saved registers (particularly LR and FP) without reaching the
+ canary. */
+ return crtl->stack_protect_guard;
+}
+
/* Mark the registers that need to be saved by the callee and calculate
the size of the callee-saved registers area and frame record (both FP
and LR may be omitted). */
static void
aarch64_layout_frame (void)
{
- poly_int64 offset = 0;
int regno, last_fp_reg = INVALID_REGNUM;
machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM);
poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode);
bool frame_related_fp_reg_p = false;
aarch64_frame &frame = cfun->machine->frame;
+ poly_int64 top_of_locals = -1;
frame.emit_frame_chain = aarch64_needs_frame_chain ();
@@ -8511,11 +8554,18 @@ aarch64_layout_frame (void)
&& !crtl->abi->clobbers_full_reg_p (regno))
frame.reg_offset[regno] = SLOT_REQUIRED;
- /* With stack-clash, LR must be saved in non-leaf functions. The saving of
- LR counts as an implicit probe which allows us to maintain the invariant
- described in the comment at expand_prologue. */
- gcc_assert (crtl->is_leaf
- || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED));
+ bool regs_at_top_p = aarch64_save_regs_above_locals_p ();
+
+ poly_int64 offset = crtl->outgoing_args_size;
+ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
+ if (regs_at_top_p)
+ {
+ offset += get_frame_size ();
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+ top_of_locals = offset;
+ }
+ frame.bytes_below_saved_regs = offset;
+ frame.sve_save_and_probe = INVALID_REGNUM;
/* Now assign stack slots for the registers. Start with the predicate
registers, since predicate LDR and STR have a relatively small
@@ -8523,11 +8573,14 @@ aarch64_layout_frame (void)
for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++)
if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
{
+ if (frame.sve_save_and_probe == INVALID_REGNUM)
+ frame.sve_save_and_probe = regno;
frame.reg_offset[regno] = offset;
offset += BYTES_PER_SVE_PRED;
}
- if (maybe_ne (offset, 0))
+ poly_int64 saved_prs_size = offset - frame.bytes_below_saved_regs;
+ if (maybe_ne (saved_prs_size, 0))
{
/* If we have any vector registers to save above the predicate registers,
the offset of the vector register save slots need to be a multiple
@@ -8545,10 +8598,10 @@ aarch64_layout_frame (void)
offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
else
{
- if (known_le (offset, vector_save_size))
- offset = vector_save_size;
- else if (known_le (offset, vector_save_size * 2))
- offset = vector_save_size * 2;
+ if (known_le (saved_prs_size, vector_save_size))
+ offset = frame.bytes_below_saved_regs + vector_save_size;
+ else if (known_le (saved_prs_size, vector_save_size * 2))
+ offset = frame.bytes_below_saved_regs + vector_save_size * 2;
else
gcc_unreachable ();
}
@@ -8559,34 +8612,53 @@ aarch64_layout_frame (void)
for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
{
+ if (frame.sve_save_and_probe == INVALID_REGNUM)
+ frame.sve_save_and_probe = regno;
frame.reg_offset[regno] = offset;
offset += vector_save_size;
}
/* OFFSET is now the offset of the hard frame pointer from the bottom
of the callee save area. */
- bool saves_below_hard_fp_p = maybe_ne (offset, 0);
- frame.below_hard_fp_saved_regs_size = offset;
+ auto below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs;
+ bool saves_below_hard_fp_p = maybe_ne (below_hard_fp_saved_regs_size, 0);
+ gcc_assert (!saves_below_hard_fp_p
+ || (frame.sve_save_and_probe != INVALID_REGNUM
+ && known_eq (frame.reg_offset[frame.sve_save_and_probe],
+ frame.bytes_below_saved_regs)));
+
+ frame.bytes_below_hard_fp = offset;
+ frame.hard_fp_save_and_probe = INVALID_REGNUM;
+
+ auto allocate_gpr_slot = [&](unsigned int regno)
+ {
+ if (frame.hard_fp_save_and_probe == INVALID_REGNUM)
+ frame.hard_fp_save_and_probe = regno;
+ frame.reg_offset[regno] = offset;
+ if (frame.wb_push_candidate1 == INVALID_REGNUM)
+ frame.wb_push_candidate1 = regno;
+ else if (frame.wb_push_candidate2 == INVALID_REGNUM)
+ frame.wb_push_candidate2 = regno;
+ offset += UNITS_PER_WORD;
+ };
+
if (frame.emit_frame_chain)
{
/* FP and LR are placed in the linkage record. */
- frame.reg_offset[R29_REGNUM] = offset;
- frame.wb_push_candidate1 = R29_REGNUM;
- frame.reg_offset[R30_REGNUM] = offset + UNITS_PER_WORD;
- frame.wb_push_candidate2 = R30_REGNUM;
- offset += 2 * UNITS_PER_WORD;
+ allocate_gpr_slot (R29_REGNUM);
+ allocate_gpr_slot (R30_REGNUM);
}
+ else if (flag_stack_clash_protection
+ && known_eq (frame.reg_offset[R30_REGNUM], SLOT_REQUIRED))
+ /* Put the LR save slot first, since it makes a good choice of probe
+ for stack clash purposes. The idea is that the link register usually
+ has to be saved before a call anyway, and so we lose little by
+ stopping it from being individually shrink-wrapped. */
+ allocate_gpr_slot (R30_REGNUM);
for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++)
if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
- {
- frame.reg_offset[regno] = offset;
- if (frame.wb_push_candidate1 == INVALID_REGNUM)
- frame.wb_push_candidate1 = regno;
- else if (frame.wb_push_candidate2 == INVALID_REGNUM)
- frame.wb_push_candidate2 = regno;
- offset += UNITS_PER_WORD;
- }
+ allocate_gpr_slot (regno);
poly_int64 max_int_offset = offset;
offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
@@ -8595,6 +8667,8 @@ aarch64_layout_frame (void)
for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++)
if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED))
{
+ if (frame.hard_fp_save_and_probe == INVALID_REGNUM)
+ frame.hard_fp_save_and_probe = regno;
/* If there is an alignment gap between integer and fp callee-saves,
allocate the last fp register to it if possible. */
if (regno == last_fp_reg
@@ -8617,30 +8691,36 @@ aarch64_layout_frame (void)
offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
- frame.saved_regs_size = offset;
-
- poly_int64 varargs_and_saved_regs_size = offset + frame.saved_varargs_size;
+ auto saved_regs_size = offset - frame.bytes_below_saved_regs;
+ gcc_assert (known_eq (saved_regs_size, below_hard_fp_saved_regs_size)
+ || (frame.hard_fp_save_and_probe != INVALID_REGNUM
+ && known_eq (frame.reg_offset[frame.hard_fp_save_and_probe],
+ frame.bytes_below_hard_fp)));
- poly_int64 above_outgoing_args
- = aligned_upper_bound (varargs_and_saved_regs_size
- + get_frame_size (),
- STACK_BOUNDARY / BITS_PER_UNIT);
+ /* With stack-clash, a register must be saved in non-leaf functions.
+ The saving of the bottommost register counts as an implicit probe,
+ which allows us to maintain the invariant described in the comment
+ at expand_prologue. */
+ gcc_assert (crtl->is_leaf || maybe_ne (saved_regs_size, 0));
- frame.hard_fp_offset
- = above_outgoing_args - frame.below_hard_fp_saved_regs_size;
-
- /* Both these values are already aligned. */
- gcc_assert (multiple_p (crtl->outgoing_args_size,
- STACK_BOUNDARY / BITS_PER_UNIT));
- frame.frame_size = above_outgoing_args + crtl->outgoing_args_size;
+ if (!regs_at_top_p)
+ {
+ offset += get_frame_size ();
+ offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT);
+ top_of_locals = offset;
+ }
+ offset += frame.saved_varargs_size;
+ gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT));
+ frame.frame_size = offset;
- frame.locals_offset = frame.saved_varargs_size;
+ frame.bytes_above_hard_fp = frame.frame_size - frame.bytes_below_hard_fp;
+ gcc_assert (known_ge (top_of_locals, 0));
+ frame.bytes_above_locals = frame.frame_size - top_of_locals;
frame.initial_adjust = 0;
frame.final_adjust = 0;
frame.callee_adjust = 0;
frame.sve_callee_adjust = 0;
- frame.callee_offset = 0;
frame.wb_pop_candidate1 = frame.wb_push_candidate1;
frame.wb_pop_candidate2 = frame.wb_push_candidate2;
@@ -8651,7 +8731,7 @@ aarch64_layout_frame (void)
frame.is_scs_enabled
= (!crtl->calls_eh_return
&& sanitize_flags_p (SANITIZE_SHADOW_CALL_STACK)
- && known_ge (cfun->machine->frame.reg_offset[LR_REGNUM], 0));
+ && known_ge (frame.reg_offset[LR_REGNUM], 0));
/* When shadow call stack is enabled, the scs_pop in the epilogue will
restore x30, and we don't need to pop x30 again in the traditional
@@ -8671,75 +8751,76 @@ aarch64_layout_frame (void)
max_push_offset to 0, because no registers are popped at this time,
so callee_adjust cannot be adjusted. */
HOST_WIDE_INT max_push_offset = 0;
- if (frame.wb_pop_candidate2 != INVALID_REGNUM)
- max_push_offset = 512;
- else if (frame.wb_pop_candidate1 != INVALID_REGNUM)
- max_push_offset = 256;
+ if (frame.wb_pop_candidate1 != INVALID_REGNUM)
+ {
+ if (frame.wb_pop_candidate2 != INVALID_REGNUM)
+ max_push_offset = 512;
+ else
+ max_push_offset = 256;
+ }
- HOST_WIDE_INT const_size, const_outgoing_args_size, const_fp_offset;
+ HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp;
HOST_WIDE_INT const_saved_regs_size;
- if (frame.frame_size.is_constant (&const_size)
- && const_size < max_push_offset
- && known_eq (frame.hard_fp_offset, const_size))
+ if (known_eq (saved_regs_size, 0))
+ frame.initial_adjust = frame.frame_size;
+ else if (frame.frame_size.is_constant (&const_size)
+ && const_size < max_push_offset
+ && known_eq (frame.bytes_above_hard_fp, const_size))
{
- /* Simple, small frame with no outgoing arguments:
+ /* Simple, small frame with no data below the saved registers.
stp reg1, reg2, [sp, -frame_size]!
stp reg3, reg4, [sp, 16] */
frame.callee_adjust = const_size;
}
- else if (crtl->outgoing_args_size.is_constant (&const_outgoing_args_size)
- && frame.saved_regs_size.is_constant (&const_saved_regs_size)
- && const_outgoing_args_size + const_saved_regs_size < 512
- /* We could handle this case even with outgoing args, provided
- that the number of args left us with valid offsets for all
- predicate and vector save slots. It's such a rare case that
- it hardly seems worth the effort though. */
- && (!saves_below_hard_fp_p || const_outgoing_args_size == 0)
+ else if (frame.bytes_below_saved_regs.is_constant (&const_below_saved_regs)
+ && saved_regs_size.is_constant (&const_saved_regs_size)
+ && const_below_saved_regs + const_saved_regs_size < 512
+ /* We could handle this case even with data below the saved
+ registers, provided that that data left us with valid offsets
+ for all predicate and vector save slots. It's such a rare
+ case that it hardly seems worth the effort though. */
+ && (!saves_below_hard_fp_p || const_below_saved_regs == 0)
&& !(cfun->calls_alloca
- && frame.hard_fp_offset.is_constant (&const_fp_offset)
- && const_fp_offset < max_push_offset))
+ && frame.bytes_above_hard_fp.is_constant (&const_above_fp)
+ && const_above_fp < max_push_offset))
{
- /* Frame with small outgoing arguments:
+ /* Frame with small area below the saved registers:
sub sp, sp, frame_size
- stp reg1, reg2, [sp, outgoing_args_size]
- stp reg3, reg4, [sp, outgoing_args_size + 16] */
+ stp reg1, reg2, [sp, bytes_below_saved_regs]
+ stp reg3, reg4, [sp, bytes_below_saved_regs + 16] */
frame.initial_adjust = frame.frame_size;
- frame.callee_offset = const_outgoing_args_size;
}
else if (saves_below_hard_fp_p
- && known_eq (frame.saved_regs_size,
- frame.below_hard_fp_saved_regs_size))
+ && known_eq (saved_regs_size, below_hard_fp_saved_regs_size))
{
/* Frame in which all saves are SVE saves:
- sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size
+ sub sp, sp, frame_size - bytes_below_saved_regs
save SVE registers relative to SP
- sub sp, sp, outgoing_args_size */
- frame.initial_adjust = (frame.hard_fp_offset
- + frame.below_hard_fp_saved_regs_size);
- frame.final_adjust = crtl->outgoing_args_size;
+ sub sp, sp, bytes_below_saved_regs */
+ frame.initial_adjust = frame.frame_size - frame.bytes_below_saved_regs;
+ frame.final_adjust = frame.bytes_below_saved_regs;
}
- else if (frame.hard_fp_offset.is_constant (&const_fp_offset)
- && const_fp_offset < max_push_offset)
+ else if (frame.bytes_above_hard_fp.is_constant (&const_above_fp)
+ && const_above_fp < max_push_offset)
{
- /* Frame with large outgoing arguments or SVE saves, but with
- a small local area:
+ /* Frame with large area below the saved registers, or with SVE saves,
+ but with a small area above:
stp reg1, reg2, [sp, -hard_fp_offset]!
stp reg3, reg4, [sp, 16]
[sub sp, sp, below_hard_fp_saved_regs_size]
[save SVE registers relative to SP]
- sub sp, sp, outgoing_args_size */
- frame.callee_adjust = const_fp_offset;
- frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
- frame.final_adjust = crtl->outgoing_args_size;
+ sub sp, sp, bytes_below_saved_regs */
+ frame.callee_adjust = const_above_fp;
+ frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
}
else
{
- /* Frame with large local area and outgoing arguments or SVE saves,
- using frame pointer:
+ /* General case:
sub sp, sp, hard_fp_offset
stp x29, x30, [sp, 0]
@@ -8747,10 +8828,29 @@ aarch64_layout_frame (void)
stp reg3, reg4, [sp, 16]
[sub sp, sp, below_hard_fp_saved_regs_size]
[save SVE registers relative to SP]
- sub sp, sp, outgoing_args_size */
- frame.initial_adjust = frame.hard_fp_offset;
- frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size;
- frame.final_adjust = crtl->outgoing_args_size;
+ sub sp, sp, bytes_below_saved_regs */
+ frame.initial_adjust = frame.bytes_above_hard_fp;
+ frame.sve_callee_adjust = below_hard_fp_saved_regs_size;
+ frame.final_adjust = frame.bytes_below_saved_regs;
+ }
+
+ /* The frame is allocated in pieces, with each non-final piece
+ including a register save at offset 0 that acts as a probe for
+ the following piece. In addition, the save of the bottommost register
+ acts as a probe for callees and allocas. Roll back any probes that
+ aren't needed.
+
+ A probe isn't needed if it is associated with the final allocation
+ (including callees and allocas) that happens before the epilogue is
+ executed. */
+ if (crtl->is_leaf
+ && !cfun->calls_alloca
+ && known_eq (frame.final_adjust, 0))
+ {
+ if (maybe_ne (frame.sve_callee_adjust, 0))
+ frame.sve_save_and_probe = INVALID_REGNUM;
+ else
+ frame.hard_fp_save_and_probe = INVALID_REGNUM;
}
/* Make sure the individual adjustments add up to the full frame size. */
@@ -9108,15 +9208,17 @@ aarch64_add_cfa_expression (rtx_insn *insn, rtx reg,
}
/* Emit code to save the callee-saved registers from register number START
- to LIMIT to the stack at the location starting at offset START_OFFSET,
- skipping any write-back candidates if SKIP_WB is true. HARD_FP_VALID_P
- is true if the hard frame pointer has been set up. */
+ to LIMIT to the stack. The stack pointer is currently BYTES_BELOW_SP
+ bytes above the bottom of the static frame. Skip any write-back
+ candidates if SKIP_WB is true. HARD_FP_VALID_P is true if the hard
+ frame pointer has been set up. */
static void
-aarch64_save_callee_saves (poly_int64 start_offset,
+aarch64_save_callee_saves (poly_int64 bytes_below_sp,
unsigned start, unsigned limit, bool skip_wb,
bool hard_fp_valid_p)
{
+ aarch64_frame &frame = cfun->machine->frame;
rtx_insn *insn;
unsigned regno;
unsigned regno2;
@@ -9131,8 +9233,8 @@ aarch64_save_callee_saves (poly_int64 start_offset,
bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno);
if (skip_wb
- && (regno == cfun->machine->frame.wb_push_candidate1
- || regno == cfun->machine->frame.wb_push_candidate2))
+ && (regno == frame.wb_push_candidate1
+ || regno == frame.wb_push_candidate2))
continue;
if (cfun->machine->reg_is_wrapped_separately[regno])
@@ -9140,7 +9242,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
machine_mode mode = aarch64_reg_save_mode (regno);
reg = gen_rtx_REG (mode, regno);
- offset = start_offset + cfun->machine->frame.reg_offset[regno];
+ offset = frame.reg_offset[regno] - bytes_below_sp;
rtx base_rtx = stack_pointer_rtx;
poly_int64 sp_offset = offset;
@@ -9151,9 +9253,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
else if (GP_REGNUM_P (regno)
&& (!offset.is_constant (&const_offset) || const_offset >= 512))
{
- gcc_assert (known_eq (start_offset, 0));
- poly_int64 fp_offset
- = cfun->machine->frame.below_hard_fp_saved_regs_size;
+ poly_int64 fp_offset = frame.bytes_below_hard_fp - bytes_below_sp;
if (hard_fp_valid_p)
base_rtx = hard_frame_pointer_rtx;
else
@@ -9175,8 +9275,7 @@ aarch64_save_callee_saves (poly_int64 start_offset,
&& (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
&& !cfun->machine->reg_is_wrapped_separately[regno2]
&& known_eq (GET_MODE_SIZE (mode),
- cfun->machine->frame.reg_offset[regno2]
- - cfun->machine->frame.reg_offset[regno]))
+ frame.reg_offset[regno2] - frame.reg_offset[regno]))
{
rtx reg2 = gen_rtx_REG (mode, regno2);
rtx mem2;
@@ -9218,14 +9317,16 @@ aarch64_save_callee_saves (poly_int64 start_offset,
}
/* Emit code to restore the callee registers from register number START
- up to and including LIMIT. Restore from the stack offset START_OFFSET,
- skipping any write-back candidates if SKIP_WB is true. Write the
- appropriate REG_CFA_RESTORE notes into CFI_OPS. */
+ up to and including LIMIT. The stack pointer is currently BYTES_BELOW_SP
+ bytes above the bottom of the static frame. Skip any write-back
+ candidates if SKIP_WB is true. Write the appropriate REG_CFA_RESTORE
+ notes into CFI_OPS. */
static void
-aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
+aarch64_restore_callee_saves (poly_int64 bytes_below_sp, unsigned start,
unsigned limit, bool skip_wb, rtx *cfi_ops)
{
+ aarch64_frame &frame = cfun->machine->frame;
unsigned regno;
unsigned regno2;
poly_int64 offset;
@@ -9242,13 +9343,13 @@ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
rtx reg, mem;
if (skip_wb
- && (regno == cfun->machine->frame.wb_pop_candidate1
- || regno == cfun->machine->frame.wb_pop_candidate2))
+ && (regno == frame.wb_pop_candidate1
+ || regno == frame.wb_pop_candidate2))
continue;
machine_mode mode = aarch64_reg_save_mode (regno);
reg = gen_rtx_REG (mode, regno);
- offset = start_offset + cfun->machine->frame.reg_offset[regno];
+ offset = frame.reg_offset[regno] - bytes_below_sp;
rtx base_rtx = stack_pointer_rtx;
if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg,
@@ -9259,8 +9360,7 @@ aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start,
&& (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit
&& !cfun->machine->reg_is_wrapped_separately[regno2]
&& known_eq (GET_MODE_SIZE (mode),
- cfun->machine->frame.reg_offset[regno2]
- - cfun->machine->frame.reg_offset[regno]))
+ frame.reg_offset[regno2] - frame.reg_offset[regno]))
{
rtx reg2 = gen_rtx_REG (mode, regno2);
rtx mem2;
@@ -9365,6 +9465,7 @@ offset_12bit_unsigned_scaled_p (machine_mode mode, poly_int64 offset)
static sbitmap
aarch64_get_separate_components (void)
{
+ aarch64_frame &frame = cfun->machine->frame;
sbitmap components = sbitmap_alloc (LAST_SAVED_REGNUM + 1);
bitmap_clear (components);
@@ -9381,20 +9482,11 @@ aarch64_get_separate_components (void)
if (mode == VNx2DImode && BYTES_BIG_ENDIAN)
continue;
- poly_int64 offset = cfun->machine->frame.reg_offset[regno];
-
- /* If the register is saved in the first SVE save slot, we use
- it as a stack probe for -fstack-clash-protection. */
- if (flag_stack_clash_protection
- && maybe_ne (cfun->machine->frame.below_hard_fp_saved_regs_size, 0)
- && known_eq (offset, 0))
- continue;
+ poly_int64 offset = frame.reg_offset[regno];
/* Get the offset relative to the register we'll use. */
if (frame_pointer_needed)
- offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
- else
- offset += crtl->outgoing_args_size;
+ offset -= frame.bytes_below_hard_fp;
/* Check that we can access the stack slot of the register with one
direct load with no adjustments needed. */
@@ -9411,11 +9503,11 @@ aarch64_get_separate_components (void)
/* If the spare predicate register used by big-endian SVE code
is call-preserved, it must be saved in the main prologue
before any saves that use it. */
- if (cfun->machine->frame.spare_pred_reg != INVALID_REGNUM)
- bitmap_clear_bit (components, cfun->machine->frame.spare_pred_reg);
+ if (frame.spare_pred_reg != INVALID_REGNUM)
+ bitmap_clear_bit (components, frame.spare_pred_reg);
- unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
- unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
+ unsigned reg1 = frame.wb_push_candidate1;
+ unsigned reg2 = frame.wb_push_candidate2;
/* If registers have been chosen to be stored/restored with
writeback don't interfere with them to avoid having to output explicit
stack adjustment instructions. */
@@ -9426,6 +9518,13 @@ aarch64_get_separate_components (void)
bitmap_clear_bit (components, LR_REGNUM);
bitmap_clear_bit (components, SP_REGNUM);
+ if (flag_stack_clash_protection)
+ {
+ if (frame.sve_save_and_probe != INVALID_REGNUM)
+ bitmap_clear_bit (components, frame.sve_save_and_probe);
+ if (frame.hard_fp_save_and_probe != INVALID_REGNUM)
+ bitmap_clear_bit (components, frame.hard_fp_save_and_probe);
+ }
return components;
}
@@ -9524,6 +9623,7 @@ aarch64_get_next_set_bit (sbitmap bmp, unsigned int start)
static void
aarch64_process_components (sbitmap components, bool prologue_p)
{
+ aarch64_frame &frame = cfun->machine->frame;
rtx ptr_reg = gen_rtx_REG (Pmode, frame_pointer_needed
? HARD_FRAME_POINTER_REGNUM
: STACK_POINTER_REGNUM);
@@ -9538,11 +9638,9 @@ aarch64_process_components (sbitmap components, bool prologue_p)
machine_mode mode = aarch64_reg_save_mode (regno);
rtx reg = gen_rtx_REG (mode, regno);
- poly_int64 offset = cfun->machine->frame.reg_offset[regno];
+ poly_int64 offset = frame.reg_offset[regno];
if (frame_pointer_needed)
- offset -= cfun->machine->frame.below_hard_fp_saved_regs_size;
- else
- offset += crtl->outgoing_args_size;
+ offset -= frame.bytes_below_hard_fp;
rtx addr = plus_constant (Pmode, ptr_reg, offset);
rtx mem = gen_frame_mem (mode, addr);
@@ -9565,14 +9663,14 @@ aarch64_process_components (sbitmap components, bool prologue_p)
break;
}
- poly_int64 offset2 = cfun->machine->frame.reg_offset[regno2];
+ poly_int64 offset2 = frame.reg_offset[regno2];
/* The next register is not of the same class or its offset is not
mergeable with the current one into a pair. */
if (aarch64_sve_mode_p (mode)
|| !satisfies_constraint_Ump (mem)
|| GP_REGNUM_P (regno) != GP_REGNUM_P (regno2)
|| (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno))
- || maybe_ne ((offset2 - cfun->machine->frame.reg_offset[regno]),
+ || maybe_ne ((offset2 - frame.reg_offset[regno]),
GET_MODE_SIZE (mode)))
{
insn = emit_insn (set);
@@ -9594,9 +9692,7 @@ aarch64_process_components (sbitmap components, bool prologue_p)
/* REGNO2 can be saved/restored in a pair with REGNO. */
rtx reg2 = gen_rtx_REG (mode, regno2);
if (frame_pointer_needed)
- offset2 -= cfun->machine->frame.below_hard_fp_saved_regs_size;
- else
- offset2 += crtl->outgoing_args_size;
+ offset2 -= frame.bytes_below_hard_fp;
rtx addr2 = plus_constant (Pmode, ptr_reg, offset2);
rtx mem2 = gen_frame_mem (mode, addr2);
rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2)
@@ -9680,10 +9776,10 @@ aarch64_emit_stack_tie (rtx reg)
registers. If POLY_SIZE is not large enough to require a probe this function
will only adjust the stack. When allocating the stack space
FRAME_RELATED_P is then used to indicate if the allocation is frame related.
- FINAL_ADJUSTMENT_P indicates whether we are allocating the outgoing
- arguments. If we are then we ensure that any allocation larger than the ABI
- defined buffer needs a probe so that the invariant of having a 1KB buffer is
- maintained.
+ FINAL_ADJUSTMENT_P indicates whether we are allocating the area below
+ the saved registers. If we are then we ensure that any allocation
+ larger than the ABI defined buffer needs a probe so that the
+ invariant of having a 1KB buffer is maintained.
We emit barriers after each stack adjustment to prevent optimizations from
breaking the invariant that we never drop the stack more than a page. This
@@ -9699,45 +9795,26 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
bool frame_related_p,
bool final_adjustment_p)
{
+ aarch64_frame &frame = cfun->machine->frame;
HOST_WIDE_INT guard_size
= 1 << param_stack_clash_protection_guard_size;
HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD;
+ HOST_WIDE_INT byte_sp_alignment = STACK_BOUNDARY / BITS_PER_UNIT;
+ gcc_assert (multiple_p (poly_size, byte_sp_alignment));
HOST_WIDE_INT min_probe_threshold
= (final_adjustment_p
- ? guard_used_by_caller
+ ? guard_used_by_caller + byte_sp_alignment
: guard_size - guard_used_by_caller);
- /* When doing the final adjustment for the outgoing arguments, take into
- account any unprobed space there is above the current SP. There are
- two cases:
-
- - When saving SVE registers below the hard frame pointer, we force
- the lowest save to take place in the prologue before doing the final
- adjustment (i.e. we don't allow the save to be shrink-wrapped).
- This acts as a probe at SP, so there is no unprobed space.
-
- - When there are no SVE register saves, we use the store of the link
- register as a probe. We can't assume that LR was saved at position 0
- though, so treat any space below it as unprobed. */
- if (final_adjustment_p
- && known_eq (cfun->machine->frame.below_hard_fp_saved_regs_size, 0))
- {
- poly_int64 lr_offset = cfun->machine->frame.reg_offset[LR_REGNUM];
- if (known_ge (lr_offset, 0))
- min_probe_threshold -= lr_offset.to_constant ();
- else
- gcc_assert (!flag_stack_clash_protection || known_eq (poly_size, 0));
- }
-
- poly_int64 frame_size = cfun->machine->frame.frame_size;
+ poly_int64 frame_size = frame.frame_size;
/* We should always have a positive probe threshold. */
gcc_assert (min_probe_threshold > 0);
if (flag_stack_clash_protection && !final_adjustment_p)
{
- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
+ poly_int64 initial_adjust = frame.initial_adjust;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
if (known_eq (frame_size, 0))
{
@@ -9891,7 +9968,7 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
/* Handle any residuals. Residuals of at least MIN_PROBE_THRESHOLD have to
be probed. This maintains the requirement that each page is probed at
least once. For initial probing we probe only if the allocation is
- more than GUARD_SIZE - buffer, and for the outgoing arguments we probe
+ more than GUARD_SIZE - buffer, and below the saved registers we probe
if the amount is larger than buffer. GUARD_SIZE - buffer + buffer ==
GUARD_SIZE. This works that for any allocation that is large enough to
trigger a probe here, we'll have at least one, and if they're not large
@@ -9901,16 +9978,12 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
are still safe. */
if (residual)
{
- HOST_WIDE_INT residual_probe_offset = guard_used_by_caller;
+ gcc_assert (guard_used_by_caller + byte_sp_alignment <= size);
+
/* If we're doing final adjustments, and we've done any full page
allocations then any residual needs to be probed. */
if (final_adjustment_p && rounded_size != 0)
min_probe_threshold = 0;
- /* If doing a small final adjustment, we always probe at offset 0.
- This is done to avoid issues when LR is not at position 0 or when
- the final adjustment is smaller than the probing offset. */
- else if (final_adjustment_p && rounded_size == 0)
- residual_probe_offset = 0;
aarch64_sub_sp (temp1, temp2, residual, frame_related_p);
if (residual >= min_probe_threshold)
@@ -9921,8 +9994,8 @@ aarch64_allocate_and_probe_stack_space (rtx temp1, rtx temp2,
HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required."
"\n", residual);
- emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
- residual_probe_offset));
+ emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx,
+ guard_used_by_caller));
emit_insn (gen_blockage ());
}
}
@@ -9960,20 +10033,24 @@ aarch64_epilogue_uses (int regno)
| for register varargs |
| |
+-------------------------------+
- | local variables | <-- frame_pointer_rtx
+ | local variables (1) | <-- frame_pointer_rtx
| |
+-------------------------------+
- | padding | \
- +-------------------------------+ |
- | callee-saved registers | | frame.saved_regs_size
- +-------------------------------+ |
- | LR' | |
- +-------------------------------+ |
- | FP' | |
- +-------------------------------+ |<- hard_frame_pointer_rtx (aligned)
- | SVE vector registers | | \
- +-------------------------------+ | | below_hard_fp_saved_regs_size
- | SVE predicate registers | / /
+ | padding (1) |
+ +-------------------------------+
+ | callee-saved registers |
+ +-------------------------------+
+ | LR' |
+ +-------------------------------+
+ | FP' |
+ +-------------------------------+ <-- hard_frame_pointer_rtx (aligned)
+ | SVE vector registers |
+ +-------------------------------+
+ | SVE predicate registers |
+ +-------------------------------+
+ | local variables (2) |
+ +-------------------------------+
+ | padding (2) |
+-------------------------------+
| dynamic allocation |
+-------------------------------+
@@ -9984,6 +10061,9 @@ aarch64_epilogue_uses (int regno)
+-------------------------------+
| | <-- stack_pointer_rtx (aligned)
+ The regions marked (1) and (2) are mutually exclusive. (2) is used
+ when aarch64_save_regs_above_locals_p is true.
+
Dynamic stack allocations via alloca() decrease stack_pointer_rtx
but leave frame_pointer_rtx and hard_frame_pointer_rtx
unchanged.
@@ -9998,8 +10078,8 @@ aarch64_epilogue_uses (int regno)
When probing is needed, we emit a probe at the start of the prologue
and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter.
- We have to track how much space has been allocated and the only stores
- to the stack we track as implicit probes are the FP/LR stores.
+ We can also use register saves as probes. These are stored in
+ sve_save_and_probe and hard_fp_save_and_probe.
For outgoing arguments we probe if the size is larger than 1KB, such that
the ABI specified buffer is maintained for the next callee.
@@ -10026,17 +10106,15 @@ aarch64_epilogue_uses (int regno)
void
aarch64_expand_prologue (void)
{
- poly_int64 frame_size = cfun->machine->frame.frame_size;
- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
- HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
- poly_int64 callee_offset = cfun->machine->frame.callee_offset;
- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
- poly_int64 below_hard_fp_saved_regs_size
- = cfun->machine->frame.below_hard_fp_saved_regs_size;
- unsigned reg1 = cfun->machine->frame.wb_push_candidate1;
- unsigned reg2 = cfun->machine->frame.wb_push_candidate2;
- bool emit_frame_chain = cfun->machine->frame.emit_frame_chain;
+ aarch64_frame &frame = cfun->machine->frame;
+ poly_int64 frame_size = frame.frame_size;
+ poly_int64 initial_adjust = frame.initial_adjust;
+ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ unsigned reg1 = frame.wb_push_candidate1;
+ unsigned reg2 = frame.wb_push_candidate2;
+ bool emit_frame_chain = frame.emit_frame_chain;
rtx_insn *insn;
if (flag_stack_clash_protection && known_eq (callee_adjust, 0))
@@ -10067,7 +10145,7 @@ aarch64_expand_prologue (void)
}
/* Push return address to shadow call stack. */
- if (cfun->machine->frame.is_scs_enabled)
+ if (frame.is_scs_enabled)
emit_insn (gen_scs_push ());
if (flag_stack_usage_info)
@@ -10104,21 +10182,21 @@ aarch64_expand_prologue (void)
if (callee_adjust != 0)
aarch64_push_regs (reg1, reg2, callee_adjust);
- /* The offset of the frame chain record (if any) from the current SP. */
- poly_int64 chain_offset = (initial_adjust + callee_adjust
- - cfun->machine->frame.hard_fp_offset);
- gcc_assert (known_ge (chain_offset, 0));
-
- /* The offset of the bottom of the save area from the current SP. */
- poly_int64 saved_regs_offset = chain_offset - below_hard_fp_saved_regs_size;
+ /* The offset of the current SP from the bottom of the static frame. */
+ poly_int64 bytes_below_sp = frame_size - initial_adjust - callee_adjust;
if (emit_frame_chain)
{
+ /* The offset of the frame chain record (if any) from the current SP. */
+ poly_int64 chain_offset = (initial_adjust + callee_adjust
+ - frame.bytes_above_hard_fp);
+ gcc_assert (known_ge (chain_offset, 0));
+
if (callee_adjust == 0)
{
reg1 = R29_REGNUM;
reg2 = R30_REGNUM;
- aarch64_save_callee_saves (saved_regs_offset, reg1, reg2,
+ aarch64_save_callee_saves (bytes_below_sp, reg1, reg2,
false, false);
}
else
@@ -10143,8 +10221,7 @@ aarch64_expand_prologue (void)
implicit. */
if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX))
{
- rtx src = plus_constant (Pmode, stack_pointer_rtx,
- callee_offset);
+ rtx src = plus_constant (Pmode, stack_pointer_rtx, chain_offset);
add_reg_note (insn, REG_CFA_ADJUST_CFA,
gen_rtx_SET (hard_frame_pointer_rtx, src));
}
@@ -10159,7 +10236,7 @@ aarch64_expand_prologue (void)
aarch64_emit_stack_tie (hard_frame_pointer_rtx);
}
- aarch64_save_callee_saves (saved_regs_offset, R0_REGNUM, R30_REGNUM,
+ aarch64_save_callee_saves (bytes_below_sp, R0_REGNUM, R30_REGNUM,
callee_adjust != 0 || emit_frame_chain,
emit_frame_chain);
if (maybe_ne (sve_callee_adjust, 0))
@@ -10169,18 +10246,21 @@ aarch64_expand_prologue (void)
aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx,
sve_callee_adjust,
!frame_pointer_needed, false);
- saved_regs_offset += sve_callee_adjust;
+ bytes_below_sp -= sve_callee_adjust;
}
- aarch64_save_callee_saves (saved_regs_offset, P0_REGNUM, P15_REGNUM,
+ aarch64_save_callee_saves (bytes_below_sp, P0_REGNUM, P15_REGNUM,
false, emit_frame_chain);
- aarch64_save_callee_saves (saved_regs_offset, V0_REGNUM, V31_REGNUM,
+ aarch64_save_callee_saves (bytes_below_sp, V0_REGNUM, V31_REGNUM,
callee_adjust != 0 || emit_frame_chain,
emit_frame_chain);
/* We may need to probe the final adjustment if it is larger than the guard
that is assumed by the called. */
+ gcc_assert (known_eq (bytes_below_sp, final_adjust));
aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust,
!frame_pointer_needed, true);
+ if (emit_frame_chain && maybe_ne (final_adjust, 0))
+ aarch64_emit_stack_tie (hard_frame_pointer_rtx);
}
/* Return TRUE if we can use a simple_return insn.
@@ -10209,16 +10289,15 @@ aarch64_use_return_insn_p (void)
void
aarch64_expand_epilogue (bool for_sibcall)
{
- poly_int64 initial_adjust = cfun->machine->frame.initial_adjust;
- HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust;
- poly_int64 final_adjust = cfun->machine->frame.final_adjust;
- poly_int64 callee_offset = cfun->machine->frame.callee_offset;
- poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust;
- poly_int64 below_hard_fp_saved_regs_size
- = cfun->machine->frame.below_hard_fp_saved_regs_size;
- unsigned reg1 = cfun->machine->frame.wb_pop_candidate1;
- unsigned reg2 = cfun->machine->frame.wb_pop_candidate2;
- unsigned int last_gpr = (cfun->machine->frame.is_scs_enabled
+ aarch64_frame &frame = cfun->machine->frame;
+ poly_int64 initial_adjust = frame.initial_adjust;
+ HOST_WIDE_INT callee_adjust = frame.callee_adjust;
+ poly_int64 final_adjust = frame.final_adjust;
+ poly_int64 sve_callee_adjust = frame.sve_callee_adjust;
+ poly_int64 bytes_below_hard_fp = frame.bytes_below_hard_fp;
+ unsigned reg1 = frame.wb_pop_candidate1;
+ unsigned reg2 = frame.wb_pop_candidate2;
+ unsigned int last_gpr = (frame.is_scs_enabled
? R29_REGNUM : R30_REGNUM);
rtx cfi_ops = NULL;
rtx_insn *insn;
@@ -10252,7 +10331,7 @@ aarch64_expand_epilogue (bool for_sibcall)
/* We need to add memory barrier to prevent read from deallocated stack. */
bool need_barrier_p
= maybe_ne (get_frame_size ()
- + cfun->machine->frame.saved_varargs_size, 0);
+ + frame.saved_varargs_size, 0);
/* Emit a barrier to prevent loads from a deallocated stack. */
if (maybe_gt (final_adjust, crtl->outgoing_args_size)
@@ -10273,7 +10352,7 @@ aarch64_expand_epilogue (bool for_sibcall)
is restored on the instruction doing the writeback. */
aarch64_add_offset (Pmode, stack_pointer_rtx,
hard_frame_pointer_rtx,
- -callee_offset - below_hard_fp_saved_regs_size,
+ -bytes_below_hard_fp + final_adjust,
tmp1_rtx, tmp0_rtx, callee_adjust == 0);
else
/* The case where we need to re-use the register here is very rare, so
@@ -10283,9 +10362,9 @@ aarch64_expand_epilogue (bool for_sibcall)
/* Restore the vector registers before the predicate registers,
so that we can use P4 as a temporary for big-endian SVE frames. */
- aarch64_restore_callee_saves (callee_offset, V0_REGNUM, V31_REGNUM,
+ aarch64_restore_callee_saves (final_adjust, V0_REGNUM, V31_REGNUM,
callee_adjust != 0, &cfi_ops);
- aarch64_restore_callee_saves (callee_offset, P0_REGNUM, P15_REGNUM,
+ aarch64_restore_callee_saves (final_adjust, P0_REGNUM, P15_REGNUM,
false, &cfi_ops);
if (maybe_ne (sve_callee_adjust, 0))
aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust, true);
@@ -10293,7 +10372,7 @@ aarch64_expand_epilogue (bool for_sibcall)
/* When shadow call stack is enabled, the scs_pop in the epilogue will
restore x30, we don't need to restore x30 again in the traditional
way. */
- aarch64_restore_callee_saves (callee_offset - sve_callee_adjust,
+ aarch64_restore_callee_saves (final_adjust + sve_callee_adjust,
R0_REGNUM, last_gpr,
callee_adjust != 0, &cfi_ops);
@@ -10333,7 +10412,7 @@ aarch64_expand_epilogue (bool for_sibcall)
}
/* Pop return address from shadow call stack. */
- if (cfun->machine->frame.is_scs_enabled)
+ if (frame.is_scs_enabled)
{
machine_mode mode = aarch64_reg_save_mode (R30_REGNUM);
rtx reg = gen_rtx_REG (mode, R30_REGNUM);
@@ -12840,24 +12919,24 @@ aarch64_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
poly_int64
aarch64_initial_elimination_offset (unsigned from, unsigned to)
{
+ aarch64_frame &frame = cfun->machine->frame;
+
if (to == HARD_FRAME_POINTER_REGNUM)
{
if (from == ARG_POINTER_REGNUM)
- return cfun->machine->frame.hard_fp_offset;
+ return frame.bytes_above_hard_fp;
if (from == FRAME_POINTER_REGNUM)
- return cfun->machine->frame.hard_fp_offset
- - cfun->machine->frame.locals_offset;
+ return frame.bytes_above_hard_fp - frame.bytes_above_locals;
}
if (to == STACK_POINTER_REGNUM)
{
if (from == FRAME_POINTER_REGNUM)
- return cfun->machine->frame.frame_size
- - cfun->machine->frame.locals_offset;
+ return frame.frame_size - frame.bytes_above_locals;
}
- return cfun->machine->frame.frame_size;
+ return frame.frame_size;
}
@@ -16260,22 +16339,6 @@ aarch64_vector_costs::analyze_loop_vinfo (loop_vec_info loop_vinfo)
/* Detect whether we're vectorizing for SVE and should apply the unrolling
heuristic described above m_unrolled_advsimd_niters. */
record_potential_advsimd_unrolling (loop_vinfo);
-
- /* Record the issue information for any SVE WHILE instructions that the
- loop needs. */
- if (!m_ops.is_empty () && !LOOP_VINFO_MASKS (loop_vinfo).is_empty ())
- {
- unsigned int num_masks = 0;
- rgroup_controls *rgm;
- unsigned int num_vectors_m1;
- FOR_EACH_VEC_ELT (LOOP_VINFO_MASKS (loop_vinfo).rgc_vec,
- num_vectors_m1, rgm)
- if (rgm->type)
- num_masks += num_vectors_m1 + 1;
- for (auto &ops : m_ops)
- if (auto *issue = ops.sve_issue_info ())
- ops.pred_ops += num_masks * issue->while_pred_ops;
- }
}
/* Implement targetm.vectorize.builtin_vectorization_cost. */
@@ -17457,9 +17520,27 @@ adjust_body_cost (loop_vec_info loop_vinfo,
void
aarch64_vector_costs::finish_cost (const vector_costs *uncast_scalar_costs)
{
+ /* Record the issue information for any SVE WHILE instructions that the
+ loop needs. */
+ loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (m_vinfo);
+ if (!m_ops.is_empty ()
+ && loop_vinfo
+ && LOOP_VINFO_FULLY_MASKED_P (loop_vinfo))
+ {
+ unsigned int num_masks = 0;
+ rgroup_controls *rgm;
+ unsigned int num_vectors_m1;
+ FOR_EACH_VEC_ELT (LOOP_VINFO_MASKS (loop_vinfo).rgc_vec,
+ num_vectors_m1, rgm)
+ if (rgm->type)
+ num_masks += num_vectors_m1 + 1;
+ for (auto &ops : m_ops)
+ if (auto *issue = ops.sve_issue_info ())
+ ops.pred_ops += num_masks * issue->while_pred_ops;
+ }
+
auto *scalar_costs
= static_cast<const aarch64_vector_costs *> (uncast_scalar_costs);
- loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (m_vinfo);
if (loop_vinfo
&& m_vec_flags
&& aarch64_use_new_vector_costs_p ())
@@ -25488,8 +25569,6 @@ aarch64_split_dimode_const_store (rtx dst, rtx src)
rtx lo = gen_lowpart (SImode, src);
rtx hi = gen_highpart_mode (SImode, DImode, src);
- bool size_p = optimize_function_for_size_p (cfun);
-
if (!rtx_equal_p (lo, hi))
return false;
@@ -25508,14 +25587,8 @@ aarch64_split_dimode_const_store (rtx dst, rtx src)
MOV w1, 49370
MOVK w1, 0x140, lsl 16
STP w1, w1, [x0]
- So we want to perform this only when we save two instructions
- or more. When optimizing for size, however, accept any code size
- savings we can. */
- if (size_p && orig_cost <= lo_cost)
- return false;
-
- if (!size_p
- && (orig_cost <= lo_cost + 1))
+ So we want to perform this when we save at least one instruction. */
+ if (orig_cost <= lo_cost)
return false;
rtx mem_lo = adjust_address (dst, SImode, 0);
@@ -26451,11 +26524,9 @@ aarch64_operands_ok_for_ldpstp (rtx *operands, bool load,
gcc_assert (known_eq (GET_MODE_SIZE (GET_MODE (mem_1)),
GET_MODE_SIZE (GET_MODE (mem_2))));
- /* One of the memory accesses must be a mempair operand.
- If it is not the first one, they need to be swapped by the
- peephole. */
- if (!aarch64_mem_pair_operand (mem_1, GET_MODE (mem_1))
- && !aarch64_mem_pair_operand (mem_2, GET_MODE (mem_2)))
+ /* The lower memory access must be a mem-pair operand. */
+ rtx lower_mem = reversed ? mem_2 : mem_1;
+ if (!aarch64_mem_pair_operand (lower_mem, GET_MODE (lower_mem)))
return false;
if (REG_P (reg_1) && FP_REGNUM_P (REGNO (reg_1)))
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index c783cb9..d74e911 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -765,6 +765,9 @@ extern enum aarch64_processor aarch64_tune;
#ifdef HAVE_POLY_INT_H
struct GTY (()) aarch64_frame
{
+ /* The offset from the bottom of the static frame (the bottom of the
+ outgoing arguments) of each register save slot, or -2 if no save is
+ needed. */
poly_int64 reg_offset[LAST_SAVED_REGNUM + 1];
/* The number of extra stack bytes taken up by register varargs.
@@ -773,25 +776,28 @@ struct GTY (()) aarch64_frame
STACK_BOUNDARY. */
HOST_WIDE_INT saved_varargs_size;
- /* The size of the callee-save registers with a slot in REG_OFFSET. */
- poly_int64 saved_regs_size;
+ /* The number of bytes between the bottom of the static frame (the bottom
+ of the outgoing arguments) and the bottom of the register save area.
+ This value is always a multiple of STACK_BOUNDARY. */
+ poly_int64 bytes_below_saved_regs;
- /* The size of the callee-save registers with a slot in REG_OFFSET that
- are saved below the hard frame pointer. */
- poly_int64 below_hard_fp_saved_regs_size;
+ /* The number of bytes between the bottom of the static frame (the bottom
+ of the outgoing arguments) and the hard frame pointer. This value is
+ always a multiple of STACK_BOUNDARY. */
+ poly_int64 bytes_below_hard_fp;
- /* Offset from the base of the frame (incomming SP) to the
- top of the locals area. This value is always a multiple of
+ /* The number of bytes between the top of the locals area and the top
+ of the frame (the incomming SP). This value is always a multiple of
STACK_BOUNDARY. */
- poly_int64 locals_offset;
+ poly_int64 bytes_above_locals;
- /* Offset from the base of the frame (incomming SP) to the
- hard_frame_pointer. This value is always a multiple of
+ /* The number of bytes between the hard_frame_pointer and the top of
+ the frame (the incomming SP). This value is always a multiple of
STACK_BOUNDARY. */
- poly_int64 hard_fp_offset;
+ poly_int64 bytes_above_hard_fp;
- /* The size of the frame. This value is the offset from base of the
- frame (incomming SP) to the stack_pointer. This value is always
+ /* The size of the frame, i.e. the number of bytes between the bottom
+ of the outgoing arguments and the incoming SP. This value is always
a multiple of STACK_BOUNDARY. */
poly_int64 frame_size;
@@ -802,10 +808,6 @@ struct GTY (()) aarch64_frame
It is zero when no push is used. */
HOST_WIDE_INT callee_adjust;
- /* The offset from SP to the callee-save registers after initial_adjust.
- It may be non-zero if no push is used (ie. callee_adjust == 0). */
- poly_int64 callee_offset;
-
/* The size of the stack adjustment before saving or after restoring
SVE registers. */
poly_int64 sve_callee_adjust;
@@ -853,6 +855,14 @@ struct GTY (()) aarch64_frame
This is the register they should use. */
unsigned spare_pred_reg;
+ /* An SVE register that is saved below the hard frame pointer and that acts
+ as a probe for later allocations, or INVALID_REGNUM if none. */
+ unsigned sve_save_and_probe;
+
+ /* A register that is saved at the hard frame pointer and that acts
+ as a probe for later allocations, or INVALID_REGNUM if none. */
+ unsigned hard_fp_save_and_probe;
+
bool laid_out;
/* True if shadow call stack should be enabled for the current function. */
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 6f7827b..60133b5 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -4637,7 +4637,7 @@
[(set_attr "type" "logics_shift_imm")]
)
-(define_insn "*<LOGICAL:optab>_<SHIFT:optab><mode>3"
+(define_insn "<LOGICAL:optab>_<SHIFT:optab><mode>3"
[(set (match_operand:GPI 0 "register_operand" "=r")
(LOGICAL:GPI (SHIFT:GPI
(match_operand:GPI 1 "register_operand" "r")
diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
index 2d8d1fe..01de474 100644
--- a/gcc/config/aarch64/predicates.md
+++ b/gcc/config/aarch64/predicates.md
@@ -732,10 +732,6 @@
(ior (match_operand 0 "register_operand")
(match_operand 0 "aarch64_sve_ld1r_operand")))
-(define_predicate "aarch64_sve_dup_ld1rq_operand"
- (ior (match_operand 0 "register_operand")
- (match_operand 0 "aarch64_sve_ld1rq_operand")))
-
(define_predicate "aarch64_sve_ptrue_svpattern_immediate"
(and (match_code "const")
(match_test "aarch64_sve_ptrue_svpattern_p (op, NULL)")))
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index 1cef7ee..477e6ce 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -12344,8 +12344,8 @@ output_pic_addr_const (FILE *file, rtx x, int code)
assemble_name (asm_out_file, buf);
break;
- case CONST_INT:
- fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
+ CASE_CONST_SCALAR_INT:
+ output_addr_const (file, x);
break;
case CONST:
diff --git a/gcc/config/loongarch/loongarch-def.c b/gcc/config/loongarch/loongarch-def.c
index e744ee0..430ef8b 100644
--- a/gcc/config/loongarch/loongarch-def.c
+++ b/gcc/config/loongarch/loongarch-def.c
@@ -85,7 +85,7 @@ loongarch_cpu_align[N_TUNE_TYPES] = {
.int_mult_di = COSTS_N_INSNS (1), \
.int_div_si = COSTS_N_INSNS (4), \
.int_div_di = COSTS_N_INSNS (6), \
- .branch_cost = 2, \
+ .branch_cost = 6, \
.memory_latency = 4
/* The following properties cannot be looked up directly using "cpucfg".
@@ -118,7 +118,7 @@ loongarch_rtx_cost_optimize_size = {
.int_mult_di = 4,
.int_div_si = 4,
.int_div_di = 4,
- .branch_cost = 2,
+ .branch_cost = 6,
.memory_latency = 4,
};
diff --git a/gcc/config/loongarch/loongarch-driver.h b/gcc/config/loongarch/loongarch-driver.h
index b39b96d..d917fca 100644
--- a/gcc/config/loongarch/loongarch-driver.h
+++ b/gcc/config/loongarch/loongarch-driver.h
@@ -23,6 +23,39 @@ along with GCC; see the file COPYING3. If not see
#include "loongarch-str.h"
+#ifndef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC ""
+#endif
+
+#ifndef SUBTARGET_CC1_SPEC
+#define SUBTARGET_CC1_SPEC ""
+#endif
+
+#ifndef SUBTARGET_ASM_SPEC
+#define SUBTARGET_ASM_SPEC ""
+#endif
+
+#define EXTRA_SPECS \
+ {"early_self_spec", ""}, \
+ {"subtarget_cc1_spec", SUBTARGET_CC1_SPEC}, \
+ {"subtarget_cpp_spec", SUBTARGET_CPP_SPEC}, \
+ {"subtarget_asm_spec", SUBTARGET_ASM_SPEC},
+
+
+#undef CPP_SPEC
+#define CPP_SPEC \
+ "%(subtarget_cpp_spec)"
+
+#undef CC1_SPEC
+#define CC1_SPEC \
+ "%{G*} %{,ada:-gnatea %{mabi=*} -gnatez} " \
+ "%(subtarget_cc1_spec)"
+
+#undef ASM_SPEC
+#define ASM_SPEC \
+ "%{mabi=*} %(subtarget_asm_spec)"
+
+
extern const char*
la_driver_init (int argc, const char **argv);
@@ -45,7 +78,16 @@ driver_get_normalized_m_opts (int argc, const char **argv);
#define LA_SET_PARM_SPEC(NAME) \
" %{m" OPTSTR_##NAME "=*: %:set_m_parm(" OPTSTR_##NAME " %*)}" \
+/* For MLIB_SELF_SPECS. */
+#include "loongarch-multilib.h"
+
+#ifndef MLIB_SELF_SPECS
+#define MLIB_SELF_SPECS ""
+#endif
+
#define DRIVER_HANDLE_MACHINE_OPTIONS \
+ " %(early_self_spec)", \
+ MLIB_SELF_SPECS \
" %:driver_init()" \
" %{c|S|E|nostdlib: %:set_no_link()}" \
" %{nostartfiles: %{nodefaultlibs: %:set_no_link()}}" \
diff --git a/gcc/config/loongarch/loongarch.h b/gcc/config/loongarch/loongarch.h
index 7e39120..d357e32 100644
--- a/gcc/config/loongarch/loongarch.h
+++ b/gcc/config/loongarch/loongarch.h
@@ -64,56 +64,6 @@ along with GCC; see the file COPYING3. If not see
#define NM_FLAGS "-Bn"
#endif
-/* SUBTARGET_ASM_SPEC is always passed to the assembler. It may be
- overridden by subtargets. */
-
-#ifndef SUBTARGET_ASM_SPEC
-#define SUBTARGET_ASM_SPEC ""
-#endif
-
-#undef ASM_SPEC
-#define ASM_SPEC "%{mabi=*} %{subtarget_asm_spec}"
-
-/* Extra switches sometimes passed to the linker. */
-
-#ifndef LINK_SPEC
-#define LINK_SPEC ""
-#endif /* LINK_SPEC defined */
-
-/* Specs for the compiler proper. */
-
-/* CC1_SPEC is the set of arguments to pass to the compiler proper. */
-
-#undef CC1_SPEC
-#define CC1_SPEC "%{,ada:-gnatea} %{m*} \
-%{G*} \
-%(subtarget_cc1_spec) %{,ada:-gnatez}"
-
-/* Preprocessor specs. */
-
-/* SUBTARGET_CPP_SPEC is passed to the preprocessor. It may be
- overridden by subtargets. */
-#ifndef SUBTARGET_CPP_SPEC
-#define SUBTARGET_CPP_SPEC ""
-#endif
-
-#define CPP_SPEC "%(subtarget_cpp_spec)"
-
-/* This macro defines names of additional specifications to put in the specs
- that can be used in various specifications like CC1_SPEC. Its definition
- is an initializer with a subgrouping for each command option.
-
- Each subgrouping contains a string constant, that defines the
- specification name, and a string constant that used by the GCC driver
- program.
-
- Do not define this macro if it does not need to do anything. */
-
-#define EXTRA_SPECS \
- {"subtarget_cc1_spec", SUBTARGET_CC1_SPEC}, \
- {"subtarget_cpp_spec", SUBTARGET_CPP_SPEC}, \
- {"subtarget_asm_spec", SUBTARGET_ASM_SPEC},
-
/* Registers may have a prefix which can be ignored when matching
user asm and register definitions. */
#ifndef REGISTER_PREFIX
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
index 1dc6b52..4fcb6d7 100644
--- a/gcc/config/loongarch/loongarch.md
+++ b/gcc/config/loongarch/loongarch.md
@@ -72,6 +72,9 @@
UNSPEC_LUI_H_HI12
UNSPEC_TLS_LOW
+ ;; Fake div.w[u] mod.w[u]
+ UNSPEC_FAKE_ANY_DIV
+
UNSPEC_SIBCALL_VALUE_MULTIPLE_INTERNAL_1
UNSPEC_CALL_VALUE_MULTIPLE_INTERNAL_1
])
@@ -900,7 +903,7 @@
(match_operand:GPR 2 "register_operand")))]
""
{
- if (GET_MODE (operands[0]) == SImode)
+ if (GET_MODE (operands[0]) == SImode && TARGET_64BIT)
{
rtx reg1 = gen_reg_rtx (DImode);
rtx reg2 = gen_reg_rtx (DImode);
@@ -920,9 +923,9 @@
})
(define_insn "*<optab><mode>3"
- [(set (match_operand:GPR 0 "register_operand" "=r,&r,&r")
- (any_div:GPR (match_operand:GPR 1 "register_operand" "r,r,0")
- (match_operand:GPR 2 "register_operand" "r,r,r")))]
+ [(set (match_operand:X 0 "register_operand" "=r,&r,&r")
+ (any_div:X (match_operand:X 1 "register_operand" "r,r,0")
+ (match_operand:X 2 "register_operand" "r,r,r")))]
""
{
return loongarch_output_division ("<insn>.<d><u>\t%0,%1,%2", operands);
@@ -938,9 +941,12 @@
(define_insn "<optab>di3_fake"
[(set (match_operand:DI 0 "register_operand" "=r,&r,&r")
(sign_extend:DI
- (any_div:SI (match_operand:DI 1 "register_operand" "r,r,0")
- (match_operand:DI 2 "register_operand" "r,r,r"))))]
- ""
+ (unspec:SI
+ [(subreg:SI
+ (any_div:DI (match_operand:DI 1 "register_operand" "r,r,0")
+ (match_operand:DI 2 "register_operand" "r,r,r")) 0)]
+ UNSPEC_FAKE_ANY_DIV)))]
+ "TARGET_64BIT"
{
return loongarch_output_division ("<insn>.w<u>\t%0,%1,%2", operands);
}
diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
index 9997596..5e849c3 100644
--- a/gcc/config/loongarch/t-linux
+++ b/gcc/config/loongarch/t-linux
@@ -16,68 +16,16 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# Multilib
-MULTILIB_OPTIONS = mabi=lp64d/mabi=lp64f/mabi=lp64s
-MULTILIB_DIRNAMES = base/lp64d base/lp64f base/lp64s
-
-# The GCC driver always gets all abi-related options on the command line.
-# (see loongarch-driver.c:driver_get_normalized_m_opts)
-comma=,
-MULTILIB_REQUIRED = $(foreach mlib,$(subst $(comma), ,$(TM_MULTILIB_CONFIG)),\
- $(firstword $(subst /, ,$(mlib))))
-
-SPECS = specs.install
-
-# temporary self_spec when building libraries (e.g. libgcc)
-gen_mlib_spec = $(if $(word 2,$1),\
- %{$(firstword $1):$(patsubst %,-%,$(wordlist 2,$(words $1),$1))})
-
-# clean up the result of DRIVER_SELF_SPEC to avoid conflict
-lib_build_self_spec = %<march=* %<mtune=* %<mcmodel=* %<mfpu=* %<msimd=*
-
-# append user-specified build options from --with-multilib-list
-lib_build_self_spec += $(foreach mlib,\
- $(subst $(comma), ,$(TM_MULTILIB_CONFIG)),\
- $(call gen_mlib_spec,$(subst /, ,$(mlib))))
-
-specs: specs.install
- sed '/^*self_spec:$$/{ n;s/^$$/$(lib_build_self_spec)/g; }' $< > $@
-
-# Do some preparation before regression tests:
-# remove lib-build-specs / make symlinks for the toplevel multilib variant
-
-LA_DEFAULT_MULTISUBDIR = $(shell $(GCC_FOR_TARGET) --print-multi-dir)
-.PHONY: remove-lib-specs
-check check-host check-target $(CHECK_TARGETS) $(lang_checks): remove-lib-specs
-remove-lib-specs:
- -mv -f specs.install specs 2>/dev/null
- -mv $(LA_DEFAULT_MULTISUBDIR)/* ./
- -mkdir -p ../$(target_noncanonical)/`dirname $(LA_DEFAULT_MULTISUBDIR)`
- -$(LN_S) .. ../$(target_noncanonical)/$(LA_DEFAULT_MULTISUBDIR)
-
-# Multiarch
-ifneq ($(call if_multiarch,yes),yes)
- # Define LA_DISABLE_MULTIARCH if multiarch is disabled.
- tm_defines += LA_DISABLE_MULTIARCH
-else
- # Only define MULTIARCH_DIRNAME when multiarch is enabled,
- # or it would always introduce ${target} into the search path.
- MULTIARCH_DIRNAME = $(LA_MULTIARCH_TRIPLET)
-endif
+MULTIOSDIR_lp64d := ../lib64$(call if_multiarch,:loongarch64-linux-gnu)
+MULTIOSDIR_lp64f := ../lib64/f32$(call if_multiarch,:loongarch64-linux-gnuf32)
+MULTIOSDIR_lp64s := ../lib64/sf$(call if_multiarch,:loongarch64-linux-gnusf)
# Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
- MULTILIB_OSDIRNAMES = \
- mabi.lp64d=../lib64$\
- $(call if_multiarch,:loongarch64-linux-gnu)
-
- MULTILIB_OSDIRNAMES += \
- mabi.lp64f=../lib64/f32$\
- $(call if_multiarch,:loongarch64-linux-gnuf32)
-
- MULTILIB_OSDIRNAMES += \
- mabi.lp64s=../lib64/sf$\
- $(call if_multiarch,:loongarch64-linux-gnusf)
+ MULTILIB_OSDIRNAMES = .=$(MULTIOSDIR_$(mlib_default))
+ MULTILIB_OSDIRNAMES += mabi.lp64d=$(MULTIOSDIR_lp64d)
+ MULTILIB_OSDIRNAMES += mabi.lp64f=$(MULTIOSDIR_lp64f)
+ MULTILIB_OSDIRNAMES += mabi.lp64s=$(MULTIOSDIR_lp64s)
endif
diff --git a/gcc/config/loongarch/t-loongarch b/gcc/config/loongarch/t-loongarch
index 43088a0..9b06fa8 100644
--- a/gcc/config/loongarch/t-loongarch
+++ b/gcc/config/loongarch/t-loongarch
@@ -16,7 +16,7 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-TM_H += $(srcdir)/config/loongarch/loongarch-driver.h
+TM_H += loongarch-multilib.h $(srcdir)/config/loongarch/loongarch-driver.h
OPTIONS_H_EXTRA += $(srcdir)/config/loongarch/loongarch-def.h \
$(srcdir)/config/loongarch/loongarch-tune.h
diff --git a/gcc/config/loongarch/t-multilib b/gcc/config/loongarch/t-multilib
new file mode 100644
index 0000000..bf6c182
--- /dev/null
+++ b/gcc/config/loongarch/t-multilib
@@ -0,0 +1,68 @@
+# Copyright (C) 2023 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# Helper definitions
+comma=,
+null :=
+space := $(null) #
+exclude_1st = $(wordlist 2,$(words $1),$1)
+
+# Common definitions
+mlib_all := lp64d lp64f lp64s
+$(foreach i,$(mlib_all),$(eval MULTISUBDIR_$i := base/$i))
+
+mlib_default := $(firstword $(subst $(comma), ,$(TM_MULTILIB_CONFIG)))
+mlib_all := $(filter-out $(mlib_default),$(mlib_all))
+
+MULTILIB_OPTIONS := $(subst $(space),/,$(foreach i,$(mlib_all),mabi=$(i)))
+MULTILIB_DIRNAMES := $(foreach i,$(mlib_all),$(MULTISUBDIR_$(i)))
+
+# Customize builds with --with-multilib-list
+MULTILIB_REQUIRED := $(foreach i,$(call exclude_1st,\
+ $(subst $(comma), ,$(TM_MULTILIB_CONFIG))),\
+ $(firstword $(subst /, ,$(i))))
+
+## spec rules for building libraries, triggered by -fmultiflags
+gen_mlib_spec = $(if $(word 2,$1),\
+ %{$(firstword $1):$(patsubst %,-%,$(call exclude_1st,$1)}))
+
+lib_build_spec = $(foreach mlib,\
+ $(call exclude_1st,$(subst $(comma), ,$(TM_MULTILIB_CONFIG))),\
+ $(call gen_mlib_spec,$(subst /, ,$(mlib))))
+
+default_mlib_spec := %{fmultiflags:%{!mabi=*:-mabi=$(mlib_default)}}
+lib_build_spec := %{fmultiflags:$(lib_build_spec)}
+
+ifneq ($(TM_MULTILIB_CONFIG),)
+loongarch-multilib.h:
+ @echo "#define MLIB_SELF_SPECS" \
+ "\"$(default_mlib_spec)\"," \
+ "\"$(lib_build_spec)\"," > $@
+else
+loongarch-multilib.h: ; @touch $@
+endif
+
+# Multiarch
+ifneq ($(call if_multiarch,yes),yes)
+ # Define LA_DISABLE_MULTIARCH if multiarch is disabled.
+ tm_defines += LA_DISABLE_MULTIARCH
+else
+ # Only define MULTIARCH_DIRNAME when multiarch is enabled,
+ # or it would always introduce ${target} into the search path.
+ MULTIARCH_DIRNAME = $(LA_MULTIARCH_TRIPLET)
+endif
diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index 15a5234..129427e 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -338,6 +338,11 @@ struct GTY(()) machine_function
#define ASM_OUTPUT_DEF_FROM_DECLS(STREAM, NAME, VALUE) \
nvptx_asm_output_def_from_decls (STREAM, NAME, VALUE)
+/* ..., but also override other macros to avoid 'gcc/defaults.h'-initialization
+ due to that dummy 'ASM_OUTPUT_DEF'. */
+#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) TARGET_SUPPORTS_ALIASES
+#define TARGET_SUPPORTS_ALIASES (nvptx_alias != 0)
+
#define NO_DOT_IN_LABEL
#define ASM_COMMENT_START "//"
diff --git a/gcc/config/riscv/autovec-opt.md b/gcc/config/riscv/autovec-opt.md
index 3aaee54..b47bae1 100644
--- a/gcc/config/riscv/autovec-opt.md
+++ b/gcc/config/riscv/autovec-opt.md
@@ -67,10 +67,10 @@
;; -------------------------------------------------------------------------
(define_insn_and_split "*<optab>not<mode>"
- [(set (match_operand:VB 0 "register_operand" "=vr")
- (bitmanip_bitwise:VB
- (not:VB (match_operand:VB 2 "register_operand" " vr"))
- (match_operand:VB 1 "register_operand" " vr")))]
+ [(set (match_operand:VB_VLS 0 "register_operand" "=vr")
+ (bitmanip_bitwise:VB_VLS
+ (not:VB_VLS (match_operand:VB_VLS 2 "register_operand" " vr"))
+ (match_operand:VB_VLS 1 "register_operand" " vr")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -93,11 +93,11 @@
;; -------------------------------------------------------------------------
(define_insn_and_split "*n<optab><mode>"
- [(set (match_operand:VB 0 "register_operand" "=vr")
- (not:VB
- (any_bitwise:VB
- (match_operand:VB 1 "register_operand" " vr")
- (match_operand:VB 2 "register_operand" " vr"))))]
+ [(set (match_operand:VB_VLS 0 "register_operand" "=vr")
+ (not:VB_VLS
+ (any_bitwise:VB_VLS
+ (match_operand:VB_VLS 1 "register_operand" " vr")
+ (match_operand:VB_VLS 2 "register_operand" " vr"))))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -609,6 +609,10 @@
(set_attr "mode" "<V_DOUBLE_TRUNC>")
(set (attr "frm_mode") (symbol_ref "riscv_vector::FRM_DYN"))])
+;; =============================================================================
+;; Combine op + vmerge to cond_op
+;; =============================================================================
+
;; Combine <op> and vcond_mask generated by midend into cond_len_<op>
;; Currently supported operations:
;; abs(FP)
@@ -628,7 +632,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode),
const0_rtx));
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine vfsqrt.v and cond_mask
(define_insn_and_split "*cond_<optab><mode>"
@@ -648,25 +653,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
-
-;; Combine vlmax neg and UNSPEC_VCOPYSIGN
-(define_insn_and_split "*copysign<mode>_neg"
- [(set (match_operand:VF 0 "register_operand")
- (neg:VF
- (unspec:VF [
- (match_operand:VF 1 "register_operand")
- (match_operand:VF 2 "register_operand")
- ] UNSPEC_VCOPYSIGN)))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- riscv_vector::emit_vlmax_insn (code_for_pred_ncopysign (<MODE>mode),
- riscv_vector::BINARY_OP, operands);
- DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine sign_extend/zero_extend(vf2) and vcond_mask
(define_insn_and_split "*cond_<optab><v_double_trunc><mode>"
@@ -685,7 +673,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine sign_extend/zero_extend(vf4) and vcond_mask
(define_insn_and_split "*cond_<optab><v_quad_trunc><mode>"
@@ -704,7 +693,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine sign_extend/zero_extend(vf8) and vcond_mask
(define_insn_and_split "*cond_<optab><v_oct_trunc><mode>"
@@ -723,7 +713,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine trunc(vf2) + vcond_mask
(define_insn_and_split "*cond_trunc<mode><v_double_trunc>"
@@ -743,7 +734,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine FP extend(vf2) and vcond_mask
(define_insn_and_split "*cond_extend<v_double_trunc><mode>"
@@ -762,7 +754,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine FP trunc(vf2) + vcond_mask
(define_insn_and_split "*cond_trunc<mode><v_double_trunc>"
@@ -782,7 +775,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(FP->INT) + vcond_mask
(define_insn_and_split "*cond_<optab><mode><vconvert>"
@@ -802,7 +796,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(INT->FP) + vcond_mask
(define_insn_and_split "*cond_<float_cvt><vconvert><mode>"
@@ -822,7 +817,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(FP->2xINT) + vcond_mask
(define_insn_and_split "*cond_<optab><vnconvert><mode>"
@@ -842,7 +838,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(INT->2xFP) + vcond_mask
(define_insn_and_split "*cond_<float_cvt><vnconvert><mode>"
@@ -862,7 +859,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(2xFP->INT) + vcond_mask
(define_insn_and_split "*cond_<optab><mode><vnconvert>"
@@ -882,7 +880,8 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Combine convert(2xINT->FP) + vcond_mask
(define_insn_and_split "*cond_<float_cvt><mode><vnconvert>2"
@@ -902,7 +901,98 @@
gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
riscv_vector::expand_cond_len_unop (icode, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
+
+;; Combine vfsgnj.vv + vcond_mask
+(define_insn_and_split "*cond_copysign<mode>"
+ [(set (match_operand:VF 0 "register_operand")
+ (if_then_else:VF
+ (match_operand:<VM> 1 "register_operand")
+ (unspec:VF
+ [(match_operand:VF 2 "register_operand")
+ (match_operand:VF 3 "register_operand")] UNSPEC_VCOPYSIGN)
+ (match_operand:VF 4 "register_operand")))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ insn_code icode = code_for_pred (UNSPEC_VCOPYSIGN, <MODE>mode);
+ rtx ops[] = {operands[0], operands[1], operands[2], operands[3], operands[4],
+ gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
+ riscv_vector::expand_cond_len_binop (icode, ops);
+ DONE;
+}
+[(set_attr "type" "vector")])
+
+;; Combine vnsra + vcond_mask
+(define_insn_and_split "*cond_v<any_shiftrt:optab><any_extend:optab>trunc<mode>"
+ [(set (match_operand:<V_DOUBLE_TRUNC> 0 "register_operand")
+ (if_then_else:<V_DOUBLE_TRUNC>
+ (match_operand:<VM> 1 "register_operand")
+ (truncate:<V_DOUBLE_TRUNC>
+ (any_shiftrt:VWEXTI
+ (match_operand:VWEXTI 2 "register_operand")
+ (any_extend:VWEXTI
+ (match_operand:<V_DOUBLE_TRUNC> 3 "vector_shift_operand"))))
+ (match_operand:<V_DOUBLE_TRUNC> 4 "register_operand")))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ insn_code icode = code_for_pred_narrow (<any_shiftrt:CODE>, <MODE>mode);
+ rtx ops[] = {operands[0], operands[1], operands[2], operands[3], operands[4],
+ gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
+ riscv_vector::expand_cond_len_binop (icode, ops);
+ DONE;
+}
+ [(set_attr "type" "vnshift")])
+
+(define_insn_and_split "*cond_<any_shiftrt:optab>trunc<mode>"
+ [(set (match_operand:<V_DOUBLE_TRUNC> 0 "register_operand")
+ (if_then_else:<V_DOUBLE_TRUNC>
+ (match_operand:<VM> 1 "register_operand")
+ (truncate:<V_DOUBLE_TRUNC>
+ (any_shiftrt:VWEXTI
+ (match_operand:VWEXTI 2 "register_operand")
+ (match_operand:<VEL> 3 "csr_operand")))
+ (match_operand:<V_DOUBLE_TRUNC> 4 "register_operand")))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ insn_code icode = code_for_pred_narrow_scalar (<any_shiftrt:CODE>, <MODE>mode);
+ rtx ops[] = {operands[0], operands[1], operands[2], gen_lowpart (Pmode, operands[3]),
+ operands[4], gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
+ riscv_vector::expand_cond_len_binop (icode, ops);
+ DONE;
+}
+ [(set_attr "type" "vnshift")])
+
+;; Combine vmulh.vv/vmulhu.vv + vcond_mask
+(define_insn_and_split "*cond_<mulh_table><mode>3_highpart"
+ [(set (match_operand:VFULLI 0 "register_operand")
+ (if_then_else:VFULLI
+ (match_operand:<VM> 1 "register_operand")
+ (mulh:VFULLI
+ (match_operand:VFULLI 2 "register_operand")
+ (match_operand:VFULLI 3 "register_operand"))
+ (match_operand:VFULLI 4 "register_operand")))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ insn_code icode = code_for_pred_mulh (<MULH_UNSPEC>, <MODE>mode);
+ rtx ops[] = {operands[0], operands[1], operands[2], operands[3], operands[4],
+ gen_int_mode (GET_MODE_NUNITS (<MODE>mode), Pmode)};
+ riscv_vector::expand_cond_len_binop (icode, ops);
+ DONE;
+}
+[(set_attr "type" "vector")])
;; =============================================================================
;; Combine extend + binop to widen_binop
@@ -925,7 +1015,8 @@
<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_insn_and_split "*single_widen_sub<any_extend:su><mode>"
[(set (match_operand:VWEXTI 0 "register_operand")
@@ -942,7 +1033,8 @@
<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "viwalu")])
(define_insn_and_split "*single_widen_add<any_extend:su><mode>"
[(set (match_operand:VWEXTI 0 "register_operand")
@@ -959,7 +1051,8 @@
<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "viwalu")])
;; This combine pattern does not correspond to an single instruction,
;; i.e. there is no vwmul.wv instruction. This is a temporary pattern
@@ -985,7 +1078,8 @@
insn_code icode = code_for_pred (MULT, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, ops);
DONE;
-})
+}
+[(set_attr "type" "viwmul")])
(define_insn_and_split "*dual_widen_mulsu<mode>"
[(set (match_operand:VWEXTI 0 "register_operand")
@@ -1002,7 +1096,8 @@
insn_code icode = code_for_pred_widen_mulsu (<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_insn_and_split "*dual_widen_mulus<mode>"
[(set (match_operand:VWEXTI 0 "register_operand")
@@ -1019,7 +1114,8 @@
insn_code icode = code_for_pred_widen_mulsu (<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_insn_and_split "*dual_widen_<optab><mode>"
[(set (match_operand:VWEXTF 0 "register_operand")
@@ -1036,7 +1132,8 @@
insn_code icode = code_for_pred_dual_widen (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_insn_and_split "*single_widen_add<mode>"
[(set (match_operand:VWEXTF 0 "register_operand")
@@ -1052,7 +1149,8 @@
insn_code icode = code_for_pred_single_widen_add (<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfwalu")])
(define_insn_and_split "*single_widen_sub<mode>"
[(set (match_operand:VWEXTF 0 "register_operand")
@@ -1068,7 +1166,8 @@
insn_code icode = code_for_pred_single_widen_sub (<MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfwalu")])
;; This combine pattern does not correspond to an single instruction,
;; i.e. there is no vfwmul.wv instruction. This is a temporary pattern
@@ -1094,4 +1193,116 @@
riscv_vector::emit_vlmax_insn (code_for_pred (MULT, <MODE>mode),
riscv_vector::BINARY_OP_FRM_DYN, ops);
DONE;
-})
+}
+[(set_attr "type" "vfwmul")])
+
+;; Combine extend + vredsum to vwredsum[u]
+(define_insn_and_split "*reduc_plus_scal_<mode>"
+ [(set (match_operand:<V_DOUBLE_EXTEND_VEL> 0 "register_operand")
+ (unspec:<V_DOUBLE_EXTEND_VEL> [
+ (any_extend:<V_DOUBLE_EXTEND>
+ (match_operand:VI_QHS_NO_M8 1 "register_operand"))
+ ] UNSPEC_REDUC_SUM))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ riscv_vector::expand_reduction (<WREDUC_UNSPEC>, riscv_vector::REDUCE_OP,
+ operands,
+ CONST0_RTX (<V_DOUBLE_EXTEND_VEL>mode));
+ DONE;
+}
+[(set_attr "type" "vector")])
+
+;; Combine extend + vfredusum to vfwredusum
+(define_insn_and_split "*reduc_plus_scal_<mode>"
+ [(set (match_operand:<V_DOUBLE_EXTEND_VEL> 0 "register_operand")
+ (unspec:<V_DOUBLE_EXTEND_VEL> [
+ (float_extend:<V_DOUBLE_EXTEND>
+ (match_operand:VF_HS_NO_M8 1 "register_operand"))
+ ] UNSPEC_REDUC_SUM_UNORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ riscv_vector::expand_reduction (UNSPEC_WREDUC_SUM_UNORDERED,
+ riscv_vector::REDUCE_OP_FRM_DYN,
+ operands,
+ CONST0_RTX (<V_DOUBLE_EXTEND_VEL>mode));
+ DONE;
+}
+[(set_attr "type" "vector")])
+
+;; Combine extend + vfredosum to vfwredosum
+(define_insn_and_split "*fold_left_widen_plus_<mode>"
+ [(set (match_operand:<V_DOUBLE_EXTEND_VEL> 0 "register_operand")
+ (unspec:<V_DOUBLE_EXTEND_VEL> [
+ (float_extend:<V_DOUBLE_EXTEND>
+ (match_operand:VF_HS_NO_M8 2 "register_operand"))
+ (match_operand:<V_DOUBLE_EXTEND_VEL> 1 "register_operand")
+ ] UNSPEC_REDUC_SUM_ORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ riscv_vector::expand_reduction (UNSPEC_WREDUC_SUM_ORDERED,
+ riscv_vector::REDUCE_OP_FRM_DYN,
+ operands, operands[1]);
+ DONE;
+}
+[(set_attr "type" "vector")])
+
+;; Combine extend + mask vfredosum to mask vfwredosum
+(define_insn_and_split "*mask_len_fold_left_widen_plus_<mode>"
+ [(set (match_operand:<V_DOUBLE_EXTEND_VEL> 0 "register_operand")
+ (unspec:<V_DOUBLE_EXTEND_VEL> [
+ (float_extend:<V_DOUBLE_EXTEND>
+ (match_operand:VF_HS_NO_M8 2 "register_operand"))
+ (match_operand:<V_DOUBLE_EXTEND_VEL> 1 "register_operand")
+ (match_operand:<VM> 3 "vector_mask_operand")
+ (match_operand 4 "autovec_length_operand")
+ (match_operand 5 "const_0_operand")
+ ] UNSPEC_REDUC_SUM_ORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ if (rtx_equal_p (operands[4], const0_rtx))
+ emit_move_insn (operands[0], operands[1]);
+ else
+ {
+ rtx ops[] = {operands[0], operands[2], operands[3], operands[4]};
+ riscv_vector::expand_reduction (UNSPEC_WREDUC_SUM_ORDERED,
+ riscv_vector::REDUCE_OP_M_FRM_DYN,
+ ops, operands[1]);
+ }
+ DONE;
+}
+[(set_attr "type" "vector")])
+
+;; =============================================================================
+;; Misc combine patterns
+;; =============================================================================
+
+;; Combine vlmax neg and UNSPEC_VCOPYSIGN
+(define_insn_and_split "*copysign<mode>_neg"
+ [(set (match_operand:VF 0 "register_operand")
+ (neg:VF
+ (unspec:VF [
+ (match_operand:VF 1 "register_operand")
+ (match_operand:VF 2 "register_operand")
+ ] UNSPEC_VCOPYSIGN)))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ riscv_vector::emit_vlmax_insn (code_for_pred_ncopysign (<MODE>mode),
+ riscv_vector::BINARY_OP, operands);
+ DONE;
+}
+[(set_attr "type" "vector")])
diff --git a/gcc/config/riscv/autovec-vls.md b/gcc/config/riscv/autovec-vls.md
deleted file mode 100644
index 6f48f7d..0000000
--- a/gcc/config/riscv/autovec-vls.md
+++ /dev/null
@@ -1,313 +0,0 @@
-;; Machine description for VLS of RVV auto-vectorization.
-;; Copyright (C) 2023 Free Software Foundation, Inc.
-;; Contributed by Juzhe Zhong (juzhe.zhong@rivai.ai), RiVAI Technologies Ltd.
-
-;; This file is part of GCC.
-
-;; GCC is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
-
-;; GCC is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GCC; see the file COPYING3. If not see
-;; <http://www.gnu.org/licenses/>.
-
-;; We define VLS modes as 'define_insn_and_split' with normal
-;; RTX_CODE operation, so we can gain benefits from Combine optimizations.
-
-;; -----------------------------------------------------------------
-;; ---- Moves Operations
-;; -----------------------------------------------------------------
-
-(define_expand "mov<mode>"
- [(set (match_operand:VLS_AVL_IMM 0 "reg_or_mem_operand")
- (match_operand:VLS_AVL_IMM 1 "general_operand"))]
- "TARGET_VECTOR"
-{
- if (riscv_vector::legitimize_move (operands[0], operands[1]))
- DONE;
-})
-
-(define_insn_and_split "*mov<mode>_mem_to_mem"
- [(set (match_operand:VLS_AVL_IMM 0 "memory_operand")
- (match_operand:VLS_AVL_IMM 1 "memory_operand"))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
- {
- if (GET_MODE_BITSIZE (<MODE>mode).to_constant () <= MAX_BITS_PER_WORD)
- {
- /* Opitmize the following case:
-
- typedef int8_t v2qi __attribute__ ((vector_size (2)));
- v2qi v = *(v2qi*)in;
- *(v2qi*)out = v;
-
- We prefer scalar load/store instead of vle.v/vse.v when
- the VLS modes size is smaller scalar mode. */
- machine_mode mode;
- unsigned size = GET_MODE_BITSIZE (<MODE>mode).to_constant ();
- if (FLOAT_MODE_P (<MODE>mode))
- mode = mode_for_size (size, MODE_FLOAT, 0).require ();
- else
- mode = mode_for_size (size, MODE_INT, 0).require ();
- emit_move_insn (gen_lowpart (mode, operands[0]),
- gen_lowpart (mode, operands[1]));
- }
- else
- {
- operands[1] = force_reg (<MODE>mode, operands[1]);
- emit_move_insn (operands[0], operands[1]);
- }
- DONE;
- }
- [(set_attr "type" "vmov")]
-)
-
-(define_insn_and_split "*mov<mode>"
- [(set (match_operand:VLS_AVL_IMM 0 "reg_or_mem_operand" "=vr, m, vr")
- (match_operand:VLS_AVL_IMM 1 "reg_or_mem_operand" " m,vr, vr"))]
- "TARGET_VECTOR
- && (register_operand (operands[0], <MODE>mode)
- || register_operand (operands[1], <MODE>mode))"
- "@
- #
- #
- vmv%m1r.v\t%0,%1"
- "&& reload_completed
- && (!register_operand (operands[0], <MODE>mode)
- || !register_operand (operands[1], <MODE>mode))"
- [(const_int 0)]
- {
- bool ok_p = riscv_vector::legitimize_move (operands[0], operands[1]);
- gcc_assert (ok_p);
- DONE;
- }
- [(set_attr "type" "vmov")]
-)
-
-(define_expand "mov<mode>"
- [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand")
- (match_operand:VLS_AVL_REG 1 "general_operand"))]
- "TARGET_VECTOR"
-{
- bool ok_p = riscv_vector::legitimize_move (operands[0], operands[1]);
- gcc_assert (ok_p);
- DONE;
-})
-
-(define_expand "@mov<VLS_AVL_REG:mode><P:mode>_lra"
- [(parallel
- [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand")
- (match_operand:VLS_AVL_REG 1 "reg_or_mem_operand"))
- (clobber (match_scratch:P 2))])]
- "TARGET_VECTOR && (lra_in_progress || reload_completed)"
-{})
-
-(define_insn_and_split "*mov<VLS_AVL_REG:mode><P:mode>_lra"
- [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand" "=vr, m,vr")
- (match_operand:VLS_AVL_REG 1 "reg_or_mem_operand" " m,vr,vr"))
- (clobber (match_scratch:P 2 "=&r,&r,X"))]
- "TARGET_VECTOR && (lra_in_progress || reload_completed)
- && (register_operand (operands[0], <VLS_AVL_REG:MODE>mode)
- || register_operand (operands[1], <VLS_AVL_REG:MODE>mode))"
- "#"
- "&& reload_completed"
- [(const_int 0)]
-{
- if (REG_P (operands[0]) && REG_P (operands[1]))
- emit_insn (gen_rtx_SET (operands[0], operands[1]));
- else
- {
- emit_move_insn (operands[2], gen_int_mode (GET_MODE_NUNITS (<VLS_AVL_REG:MODE>mode),
- Pmode));
- unsigned insn_flags
- = GET_MODE_CLASS (<VLS_AVL_REG:MODE>mode) == MODE_VECTOR_BOOL
- ? riscv_vector::UNARY_MASK_OP
- : riscv_vector::UNARY_OP;
- riscv_vector::emit_nonvlmax_insn (code_for_pred_mov (<VLS_AVL_REG:MODE>mode),
- insn_flags, operands, operands[2]);
- }
- DONE;
-}
- [(set_attr "type" "vmov")]
-)
-
-(define_insn "*mov<mode>_vls"
- [(set (match_operand:VLS 0 "register_operand" "=vr")
- (match_operand:VLS 1 "register_operand" " vr"))]
- "TARGET_VECTOR"
- "vmv%m1r.v\t%0,%1"
- [(set_attr "type" "vmov")
- (set_attr "mode" "<MODE>")])
-
-(define_insn "*mov<mode>_vls"
- [(set (match_operand:VLSB 0 "register_operand" "=vr")
- (match_operand:VLSB 1 "register_operand" " vr"))]
- "TARGET_VECTOR"
- "vmv1r.v\t%0,%1"
- [(set_attr "type" "vmov")
- (set_attr "mode" "<MODE>")])
-
-(define_expand "movmisalign<mode>"
- [(set (match_operand:VLS 0 "nonimmediate_operand")
- (match_operand:VLS 1 "general_operand"))]
- "TARGET_VECTOR"
- {
- /* To support misalign data movement, we should use
- minimum element alignment load/store. */
- unsigned int size = GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode));
- poly_int64 nunits = GET_MODE_NUNITS (<MODE>mode) * size;
- machine_mode mode = riscv_vector::get_vector_mode (QImode, nunits).require ();
- operands[0] = gen_lowpart (mode, operands[0]);
- operands[1] = gen_lowpart (mode, operands[1]);
- if (MEM_P (operands[0]) && !register_operand (operands[1], mode))
- operands[1] = force_reg (mode, operands[1]);
- riscv_vector::emit_vlmax_insn (code_for_pred_mov (mode), riscv_vector::UNARY_OP, operands);
- DONE;
- }
-)
-
-;; -----------------------------------------------------------------
-;; ---- Duplicate Operations
-;; -----------------------------------------------------------------
-
-(define_insn_and_split "@vec_duplicate<mode>"
- [(set (match_operand:VLS 0 "register_operand")
- (vec_duplicate:VLS
- (match_operand:<VEL> 1 "reg_or_int_operand")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
- {
- riscv_vector::emit_vlmax_insn (code_for_pred_broadcast (<MODE>mode),
- riscv_vector::UNARY_OP, operands);
- DONE;
- }
- [(set_attr "type" "vector")]
-)
-
-;; -------------------------------------------------------------------------
-;; ---- [INT] Binary operations
-;; -------------------------------------------------------------------------
-;; Includes:
-;; - vadd.vv/vsub.vv/...
-;; - vadd.vi/vsub.vi/...
-;; -------------------------------------------------------------------------
-
-(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VLSI 0 "register_operand")
- (any_int_binop_no_shift:VLSI
- (match_operand:VLSI 1 "<binop_rhs1_predicate>")
- (match_operand:VLSI 2 "<binop_rhs2_predicate>")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
- riscv_vector::BINARY_OP, operands);
- DONE;
-}
-[(set_attr "type" "vector")]
-)
-
-;; -------------------------------------------------------------------------
-;; ---- [FP] Binary operations
-;; -------------------------------------------------------------------------
-;; Includes:
-;; - vfadd.vv/vfsub.vv/vfmul.vv/vfdiv.vv
-;; - vfadd.vf/vfsub.vf/vfmul.vf/vfdiv.vf
-;; -------------------------------------------------------------------------
-(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VLSF 0 "register_operand")
- (any_float_binop:VLSF
- (match_operand:VLSF 1 "<binop_rhs1_predicate>")
- (match_operand:VLSF 2 "<binop_rhs2_predicate>")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
- riscv_vector::BINARY_OP_FRM_DYN, operands);
- DONE;
-}
-[(set_attr "type" "vector")]
-)
-
-;; -------------------------------------------------------------------------
-;; Includes:
-;; - vfmin.vv/vfmax.vv
-;; - vfmin.vf/vfmax.vf
-;; - fmax/fmaxf in math.h
-;; -------------------------------------------------------------------------
-(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VLSF 0 "register_operand")
- (any_float_binop_nofrm:VLSF
- (match_operand:VLSF 1 "<binop_rhs1_predicate>")
- (match_operand:VLSF 2 "<binop_rhs2_predicate>")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
- riscv_vector::BINARY_OP, operands);
- DONE;
-}
-[(set_attr "type" "vector")]
-)
-
-;; -------------------------------------------------------------------------
-;; Includes:
-;; - vfsgnj.vv
-;; - vfsgnj.vf
-;; -------------------------------------------------------------------------
-(define_insn_and_split "copysign<mode>3"
- [(set (match_operand:VLSF 0 "register_operand")
- (unspec:VLSF
- [(match_operand:VLSF 1 "register_operand")
- (match_operand:VLSF 2 "register_operand")] UNSPEC_VCOPYSIGN))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
- {
- riscv_vector::emit_vlmax_insn (code_for_pred (UNSPEC_VCOPYSIGN, <MODE>mode),
- riscv_vector::BINARY_OP, operands);
- DONE;
- }
- [(set_attr "type" "vector")]
-)
-
-;; -------------------------------------------------------------------------------
-;; ---- [INT] Unary operations
-;; -------------------------------------------------------------------------------
-;; Includes:
-;; - vneg.v/vnot.v
-;; -------------------------------------------------------------------------------
-
-(define_insn_and_split "<optab><mode>2"
- [(set (match_operand:VLSI 0 "register_operand")
- (any_int_unop:VLSI
- (match_operand:VLSI 1 "register_operand")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- insn_code icode = code_for_pred (<CODE>, <MODE>mode);
- riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
- DONE;
-}
-[(set_attr "type" "vector")]
-)
diff --git a/gcc/config/riscv/autovec.md b/gcc/config/riscv/autovec.md
index 50ed1a9..493d574 100644
--- a/gcc/config/riscv/autovec.md
+++ b/gcc/config/riscv/autovec.md
@@ -373,7 +373,7 @@
;; -------------------------------------------------------------------------
(define_expand "vec_init<mode><vel>"
- [(match_operand:V 0 "register_operand")
+ [(match_operand:V_VLS 0 "register_operand")
(match_operand 1 "")]
"TARGET_VECTOR"
{
@@ -420,10 +420,10 @@
;; -------------------------------------------------------------------------
(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VI 0 "register_operand")
- (any_int_binop_no_shift:VI
- (match_operand:VI 1 "<binop_rhs1_predicate>")
- (match_operand:VI 2 "<binop_rhs2_predicate>")))]
+ [(set (match_operand:V_VLSI 0 "register_operand")
+ (any_int_binop_no_shift:V_VLSI
+ (match_operand:V_VLSI 1 "<binop_rhs1_predicate>")
+ (match_operand:V_VLSI 2 "<binop_rhs2_predicate>")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -432,7 +432,8 @@
riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vialu")])
;; -------------------------------------------------------------------------
;; ---- [INT] Binary shifts by scalar.
@@ -494,9 +495,9 @@
;; -------------------------------------------------------------------------
(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VB 0 "register_operand" "=vr")
- (any_bitwise:VB (match_operand:VB 1 "register_operand" " vr")
- (match_operand:VB 2 "register_operand" " vr")))]
+ [(set (match_operand:VB_VLS 0 "register_operand" "=vr")
+ (any_bitwise:VB_VLS (match_operand:VB_VLS 1 "register_operand" " vr")
+ (match_operand:VB_VLS 2 "register_operand" " vr")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -517,8 +518,8 @@
;; -------------------------------------------------------------------------
(define_insn_and_split "one_cmpl<mode>2"
- [(set (match_operand:VB 0 "register_operand" "=vr")
- (not:VB (match_operand:VB 1 "register_operand" " vr")))]
+ [(set (match_operand:VB_VLS 0 "register_operand" "=vr")
+ (not:VB_VLS (match_operand:VB_VLS 1 "register_operand" " vr")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -544,12 +545,12 @@
;; - vfmerge.vf
;; -------------------------------------------------------------------------
-(define_insn_and_split "@vcond_mask_<mode><vm>"
- [(set (match_operand:V 0 "register_operand")
- (if_then_else:V
+(define_insn_and_split "vcond_mask_<mode><vm>"
+ [(set (match_operand:V_VLS 0 "register_operand")
+ (if_then_else:V_VLS
(match_operand:<VM> 3 "register_operand")
- (match_operand:V 1 "nonmemory_operand")
- (match_operand:V 2 "register_operand")))]
+ (match_operand:V_VLS 1 "nonmemory_operand")
+ (match_operand:V_VLS 2 "register_operand")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -561,9 +562,44 @@
riscv_vector::MERGE_OP, operands);
DONE;
}
+ [(set_attr "type" "vector")]
)
;; -------------------------------------------------------------------------
+;; ---- [BOOL] Select based on masks
+;; -------------------------------------------------------------------------
+;; Includes merging patterns for:
+;; - vmand.mm
+;; - vmor.mm
+;; - vmnot.m
+;; -------------------------------------------------------------------------
+
+(define_expand "vcond_mask_<mode><mode>"
+ [(match_operand:VB 0 "register_operand")
+ (match_operand:VB 1 "register_operand")
+ (match_operand:VB 2 "register_operand")
+ (match_operand:VB 3 "register_operand")]
+ "TARGET_VECTOR"
+ {
+ /* mask1 = operands[3] & operands[1]. */
+ rtx mask1 = expand_binop (<MODE>mode, and_optab, operands[1],
+ operands[3], NULL_RTX, 0,
+ OPTAB_DIRECT);
+ /* mask2 = ~operands[3] & operands[2]. */
+ rtx inverse = expand_unop (<MODE>mode, one_cmpl_optab, operands[3],
+ NULL_RTX, 0);
+ rtx mask2 = expand_binop (<MODE>mode, and_optab, operands[2],
+ inverse, NULL_RTX, 0,
+ OPTAB_DIRECT);
+ /* result = mask1 | mask2. */
+ rtx result = expand_binop (<MODE>mode, ior_optab, mask1,
+ mask2, NULL_RTX, 0,
+ OPTAB_DIRECT);
+ emit_move_insn (operands[0], result);
+ DONE;
+ })
+
+;; -------------------------------------------------------------------------
;; ---- [INT,FP] Comparisons
;; -------------------------------------------------------------------------
;; Includes:
@@ -573,8 +609,8 @@
(define_expand "vec_cmp<mode><vm>"
[(set (match_operand:<VM> 0 "register_operand")
(match_operator:<VM> 1 "comparison_operator"
- [(match_operand:VI 2 "register_operand")
- (match_operand:VI 3 "register_operand")]))]
+ [(match_operand:V_VLSI 2 "register_operand")
+ (match_operand:V_VLSI 3 "register_operand")]))]
"TARGET_VECTOR"
{
riscv_vector::expand_vec_cmp (operands[0], GET_CODE (operands[1]),
@@ -586,8 +622,8 @@
(define_expand "vec_cmpu<mode><vm>"
[(set (match_operand:<VM> 0 "register_operand")
(match_operator:<VM> 1 "comparison_operator"
- [(match_operand:VI 2 "register_operand")
- (match_operand:VI 3 "register_operand")]))]
+ [(match_operand:V_VLSI 2 "register_operand")
+ (match_operand:V_VLSI 3 "register_operand")]))]
"TARGET_VECTOR"
{
riscv_vector::expand_vec_cmp (operands[0], GET_CODE (operands[1]),
@@ -599,8 +635,8 @@
(define_expand "vec_cmp<mode><vm>"
[(set (match_operand:<VM> 0 "register_operand")
(match_operator:<VM> 1 "comparison_operator"
- [(match_operand:VF 2 "register_operand")
- (match_operand:VF 3 "register_operand")]))]
+ [(match_operand:V_VLSF 2 "register_operand")
+ (match_operand:V_VLSF 3 "register_operand")]))]
"TARGET_VECTOR"
{
riscv_vector::expand_vec_cmp_float (operands[0], GET_CODE (operands[1]),
@@ -648,7 +684,8 @@
insn_code icode = code_for_pred_vf4 (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vext")])
(define_insn_and_split "<optab><v_oct_trunc><mode>2"
[(set (match_operand:VOEXTI 0 "register_operand")
@@ -662,7 +699,8 @@
insn_code icode = code_for_pred_vf8 (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vext")])
;; -------------------------------------------------------------------------
;; ---- [INT] Truncation
@@ -818,7 +856,8 @@
insn_code icode = code_for_pred (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vfcvtftoi")])
;; -------------------------------------------------------------------------
;; ---- [FP<-INT] Conversions
@@ -840,7 +879,8 @@
insn_code icode = code_for_pred (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfcvtitof")])
;; =========================================================================
;; == Widening/narrowing Conversions
@@ -865,7 +905,8 @@
insn_code icode = code_for_pred_widen (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vfwcvtftoi")])
;; -------------------------------------------------------------------------
;; ---- [FP<-INT] Widening Conversions
@@ -886,7 +927,8 @@
insn_code icode = code_for_pred_widen (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vfwcvtitof")])
;; -------------------------------------------------------------------------
;; ---- [INT<-FP] Narrowing Conversions
@@ -907,7 +949,8 @@
insn_code icode = code_for_pred_narrow (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vfncvtftoi")])
;; -------------------------------------------------------------------------
;; ---- [FP<-INT] Narrowing Conversions
@@ -928,7 +971,8 @@
insn_code icode = code_for_pred_narrow (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfncvtitof")])
;; =========================================================================
;; == Unary arithmetic
@@ -941,9 +985,9 @@
;; - vneg.v/vnot.v
;; -------------------------------------------------------------------------------
(define_insn_and_split "<optab><mode>2"
- [(set (match_operand:VI 0 "register_operand")
- (any_int_unop:VI
- (match_operand:VI 1 "register_operand")))]
+ [(set (match_operand:V_VLSI 0 "register_operand")
+ (any_int_unop:V_VLSI
+ (match_operand:V_VLSI 1 "register_operand")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -952,7 +996,8 @@
insn_code icode = code_for_pred (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vialu")])
;; -------------------------------------------------------------------------------
;; - [INT] ABS expansion to vmslt and vneg.
@@ -976,7 +1021,8 @@
riscv_vector::emit_vlmax_insn (code_for_pred (NEG, <MODE>mode),
riscv_vector::UNARY_OP_TAMU, ops);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; -------------------------------------------------------------------------------
;; ---- [FP] Unary operations
@@ -996,7 +1042,8 @@
insn_code icode = code_for_pred (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; -------------------------------------------------------------------------------
;; - [FP] Square root
@@ -1016,7 +1063,8 @@
insn_code icode = code_for_pred (<CODE>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::UNARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfsqrt")])
;; =========================================================================
;; == Ternary arithmetic
@@ -1397,7 +1445,7 @@
(define_expand "vec_extract<mode><vel>"
[(set (match_operand:<VEL> 0 "register_operand")
(vec_select:<VEL>
- (match_operand:V 1 "register_operand")
+ (match_operand:V_VLS 1 "register_operand")
(parallel
[(match_operand 2 "nonmemory_operand")])))]
"TARGET_VECTOR"
@@ -1468,10 +1516,10 @@
;; - vfadd.vf/vfsub.vf/...
;; -------------------------------------------------------------------------
(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VF 0 "register_operand")
- (any_float_binop:VF
- (match_operand:VF 1 "register_operand")
- (match_operand:VF 2 "register_operand")))]
+ [(set (match_operand:V_VLSF 0 "register_operand")
+ (any_float_binop:V_VLSF
+ (match_operand:V_VLSF 1 "register_operand")
+ (match_operand:V_VLSF 2 "register_operand")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -1480,7 +1528,8 @@
riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
riscv_vector::BINARY_OP_FRM_DYN, operands);
DONE;
-})
+}
+[(set_attr "type" "vfalu")])
;; -------------------------------------------------------------------------
;; Includes:
@@ -1488,10 +1537,10 @@
;; - vfmin.vf/vfmax.vf
;; -------------------------------------------------------------------------
(define_insn_and_split "<optab><mode>3"
- [(set (match_operand:VF 0 "register_operand")
- (any_float_binop_nofrm:VF
- (match_operand:VF 1 "register_operand")
- (match_operand:VF 2 "register_operand")))]
+ [(set (match_operand:V_VLSF 0 "register_operand")
+ (any_float_binop_nofrm:V_VLSF
+ (match_operand:V_VLSF 1 "register_operand")
+ (match_operand:V_VLSF 2 "register_operand")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -1500,7 +1549,8 @@
riscv_vector::emit_vlmax_insn (code_for_pred (<CODE>, <MODE>mode),
riscv_vector::BINARY_OP, operands);
DONE;
-})
+}
+[(set_attr "type" "vfminmax")])
;; -------------------------------------------------------------------------------
;; ---- [FP] Sign copying
@@ -1513,10 +1563,10 @@
;; Leave the pattern like this as to still allow combine to match
;; a negated copysign (see vector.md) before adding the UNSPEC_VPREDICATE later.
(define_insn_and_split "copysign<mode>3"
- [(set (match_operand:VF 0 "register_operand" "=vd, vd, vr, vr")
- (unspec:VF
- [(match_operand:VF 1 "register_operand" " vr, vr, vr, vr")
- (match_operand:VF 2 "register_operand" " vr, vr, vr, vr")] UNSPEC_VCOPYSIGN))]
+ [(set (match_operand:V_VLSF 0 "register_operand" "=vd, vd, vr, vr")
+ (unspec:V_VLSF
+ [(match_operand:V_VLSF 1 "register_operand" " vr, vr, vr, vr")
+ (match_operand:V_VLSF 2 "register_operand" " vr, vr, vr, vr")] UNSPEC_VCOPYSIGN))]
"TARGET_VECTOR && can_create_pseudo_p ()"
"#"
"&& 1"
@@ -1535,9 +1585,9 @@
;; - vfsgnjx.vf
;; -------------------------------------------------------------------------------
(define_expand "xorsign<mode>3"
- [(match_operand:VF 0 "register_operand")
- (match_operand:VF 1 "register_operand")
- (match_operand:VF 2 "register_operand")]
+ [(match_operand:V_VLSF 0 "register_operand")
+ (match_operand:V_VLSF 1 "register_operand")
+ (match_operand:V_VLSF 2 "register_operand")]
"TARGET_VECTOR"
{
riscv_vector::emit_vlmax_insn (code_for_pred (UNSPEC_VXORSIGN, <MODE>mode),
@@ -1553,9 +1603,9 @@
;; - vmulhu.vv
;; -------------------------------------------------------------------------
-(define_insn_and_split "smul<mode>3_highpart"
+(define_insn_and_split "<mulh_table><mode>3_highpart"
[(set (match_operand:VFULLI 0 "register_operand")
- (smul_highpart:VFULLI
+ (mulh:VFULLI
(match_operand:VFULLI 1 "register_operand")
(match_operand:VFULLI 2 "register_operand")))]
"TARGET_VECTOR && can_create_pseudo_p ()"
@@ -1563,25 +1613,11 @@
"&& 1"
[(const_int 0)]
{
- insn_code icode = code_for_pred_mulh (UNSPEC_VMULHS, <MODE>mode);
+ insn_code icode = code_for_pred_mulh (<MULH_UNSPEC>, <MODE>mode);
riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
DONE;
-})
-
-(define_insn_and_split "umul<mode>3_highpart"
- [(set (match_operand:VFULLI 0 "register_operand")
- (umul_highpart:VFULLI
- (match_operand:VFULLI 1 "register_operand")
- (match_operand:VFULLI 2 "register_operand")))]
- "TARGET_VECTOR && can_create_pseudo_p ()"
- "#"
- "&& 1"
- [(const_int 0)]
-{
- insn_code icode = code_for_pred_mulh (UNSPEC_VMULHU, <MODE>mode);
- riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands);
- DONE;
-})
+}
+[(set_attr "type" "vimul")])
;; -------------------------------------------------------------------------
;; ---- [INT] Conditional unary operations
@@ -2050,81 +2086,95 @@
;; - vredxor.vs
;; -------------------------------------------------------------------------
-(define_expand "reduc_plus_scal_<mode>"
- [(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
- "TARGET_VECTOR"
+(define_insn_and_split "reduc_plus_scal_<mode>"
+ [(set (match_operand:<VEL> 0 "register_operand")
+ (unspec:<VEL> [
+ (match_operand:V_VLSI 1 "register_operand")
+ ] UNSPEC_REDUC_SUM))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- riscv_vector::expand_reduction (PLUS, operands, CONST0_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_SUM, riscv_vector::REDUCE_OP,
+ operands, CONST0_RTX (<VEL>mode));
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_expand "reduc_smax_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
int prec = GET_MODE_PRECISION (<VEL>mode);
rtx min = immed_wide_int_const (wi::min_value (prec, SIGNED), <VEL>mode);
- riscv_vector::expand_reduction (SMAX, operands, min);
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MAX, riscv_vector::REDUCE_OP,
+ operands, min);
DONE;
})
(define_expand "reduc_umax_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
- riscv_vector::expand_reduction (UMAX, operands, CONST0_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MAXU, riscv_vector::REDUCE_OP,
+ operands, CONST0_RTX (<VEL>mode));
DONE;
})
(define_expand "reduc_smin_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
int prec = GET_MODE_PRECISION (<VEL>mode);
rtx max = immed_wide_int_const (wi::max_value (prec, SIGNED), <VEL>mode);
- riscv_vector::expand_reduction (SMIN, operands, max);
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MIN, riscv_vector::REDUCE_OP,
+ operands, max);
DONE;
})
(define_expand "reduc_umin_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
int prec = GET_MODE_PRECISION (<VEL>mode);
rtx max = immed_wide_int_const (wi::max_value (prec, UNSIGNED), <VEL>mode);
- riscv_vector::expand_reduction (UMIN, operands, max);
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MINU, riscv_vector::REDUCE_OP,
+ operands, max);
DONE;
})
(define_expand "reduc_and_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
- riscv_vector::expand_reduction (AND, operands, CONSTM1_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_AND, riscv_vector::REDUCE_OP,
+ operands, CONSTM1_RTX (<VEL>mode));
DONE;
})
(define_expand "reduc_ior_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
- riscv_vector::expand_reduction (IOR, operands, CONST0_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_OR, riscv_vector::REDUCE_OP,
+ operands, CONST0_RTX (<VEL>mode));
DONE;
})
(define_expand "reduc_xor_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VI 1 "register_operand")]
+ (match_operand:V_VLSI 1 "register_operand")]
"TARGET_VECTOR"
{
- riscv_vector::expand_reduction (XOR, operands, CONST0_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_XOR, riscv_vector::REDUCE_OP,
+ operands, CONST0_RTX (<VEL>mode));
DONE;
})
@@ -2137,36 +2187,46 @@
;; - vfredmin.vs
;; -------------------------------------------------------------------------
-(define_expand "reduc_plus_scal_<mode>"
- [(match_operand:<VEL> 0 "register_operand")
- (match_operand:VF 1 "register_operand")]
- "TARGET_VECTOR"
+(define_insn_and_split "reduc_plus_scal_<mode>"
+ [(set (match_operand:<VEL> 0 "register_operand")
+ (unspec:<VEL> [
+ (match_operand:V_VLSF 1 "register_operand")
+ ] UNSPEC_REDUC_SUM_UNORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- riscv_vector::expand_reduction (PLUS, operands, CONST0_RTX (<VEL>mode));
+ riscv_vector::expand_reduction (UNSPEC_REDUC_SUM_UNORDERED,
+ riscv_vector::REDUCE_OP_FRM_DYN,
+ operands, CONST0_RTX (<VEL>mode));
DONE;
-})
+}
+[(set_attr "type" "vector")])
(define_expand "reduc_smax_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VF 1 "register_operand")]
+ (match_operand:V_VLSF 1 "register_operand")]
"TARGET_VECTOR"
{
REAL_VALUE_TYPE rv;
real_inf (&rv, true);
rtx f = const_double_from_real_value (rv, <VEL>mode);
- riscv_vector::expand_reduction (SMAX, operands, f);
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MAX, riscv_vector::REDUCE_OP,
+ operands, f);
DONE;
})
(define_expand "reduc_smin_scal_<mode>"
[(match_operand:<VEL> 0 "register_operand")
- (match_operand:VF 1 "register_operand")]
+ (match_operand:V_VLSF 1 "register_operand")]
"TARGET_VECTOR"
{
REAL_VALUE_TYPE rv;
real_inf (&rv, false);
rtx f = const_double_from_real_value (rv, <VEL>mode);
- riscv_vector::expand_reduction (SMIN, operands, f);
+ riscv_vector::expand_reduction (UNSPEC_REDUC_MIN, riscv_vector::REDUCE_OP,
+ operands, f);
DONE;
})
@@ -2178,36 +2238,52 @@
;; -------------------------------------------------------------------------
;; Unpredicated in-order FP reductions.
-(define_expand "fold_left_plus_<mode>"
- [(match_operand:<VEL> 0 "register_operand")
- (match_operand:<VEL> 1 "register_operand")
- (match_operand:VF 2 "register_operand")]
- "TARGET_VECTOR"
+(define_insn_and_split "fold_left_plus_<mode>"
+ [(set (match_operand:<VEL> 0 "register_operand")
+ (unspec:<VEL> [
+ (match_operand:V_VLSF 2 "register_operand")
+ (match_operand:<VEL> 1 "register_operand")
+ ] UNSPEC_REDUC_SUM_ORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
- riscv_vector::expand_reduction (PLUS, operands,
- operands[1],
- riscv_vector::reduction_type::FOLD_LEFT);
+ rtx ops[] = {operands[0], operands[2]};
+ riscv_vector::expand_reduction (UNSPEC_REDUC_SUM_ORDERED,
+ riscv_vector::REDUCE_OP_FRM_DYN,
+ ops, operands[1]);
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; Predicated in-order FP reductions.
-(define_expand "mask_len_fold_left_plus_<mode>"
- [(match_operand:<VEL> 0 "register_operand")
- (match_operand:<VEL> 1 "register_operand")
- (match_operand:VF 2 "register_operand")
- (match_operand:<VM> 3 "vector_mask_operand")
- (match_operand 4 "autovec_length_operand")
- (match_operand 5 "const_0_operand")]
- "TARGET_VECTOR"
+(define_insn_and_split "mask_len_fold_left_plus_<mode>"
+ [(set (match_operand:<VEL> 0 "register_operand")
+ (unspec:<VEL> [
+ (match_operand:VF 2 "register_operand")
+ (match_operand:<VEL> 1 "register_operand")
+ (match_operand:<VM> 3 "vector_mask_operand")
+ (match_operand 4 "autovec_length_operand")
+ (match_operand 5 "const_0_operand")
+ ] UNSPEC_REDUC_SUM_ORDERED))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
if (rtx_equal_p (operands[4], const0_rtx))
emit_move_insn (operands[0], operands[1]);
else
- riscv_vector::expand_reduction (PLUS, operands,
- operands[1],
- riscv_vector::reduction_type::MASK_LEN_FOLD_LEFT);
+ {
+ rtx ops[] = {operands[0], operands[2], operands[3], operands[4]};
+ riscv_vector::expand_reduction (UNSPEC_REDUC_SUM_ORDERED,
+ riscv_vector::REDUCE_OP_M_FRM_DYN,
+ ops, operands[1]);
+ }
DONE;
-})
+}
+[(set_attr "type" "vector")])
;; -------------------------------------------------------------------------
;; ---- [INT,FP] Extract active element
diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md
index 431b329..0d126a8 100644
--- a/gcc/config/riscv/bitmanip.md
+++ b/gcc/config/riscv/bitmanip.md
@@ -206,7 +206,7 @@
(popcount:GPR (match_operand:GPR 1 "register_operand")))]
"TARGET_ZBB")
-(define_insn "*<optab>_not<mode>"
+(define_insn "<optab>_not<mode>3"
[(set (match_operand:X 0 "register_operand" "=r")
(bitmanip_bitwise:X (not:X (match_operand:X 1 "register_operand" "r"))
(match_operand:X 2 "register_operand" "r")))]
diff --git a/gcc/config/riscv/crypto.md b/gcc/config/riscv/crypto.md
index e4b7f01..03a1d03 100644
--- a/gcc/config/riscv/crypto.md
+++ b/gcc/config/riscv/crypto.md
@@ -250,36 +250,47 @@
;; ZKNH - SHA256
-(define_insn "riscv_sha256sig0_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SHA_256_SIG0))]
- "TARGET_ZKNH"
- "sha256sig0\t%0,%1"
- [(set_attr "type" "crypto")])
-
-(define_insn "riscv_sha256sig1_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SHA_256_SIG1))]
- "TARGET_ZKNH"
- "sha256sig1\t%0,%1"
+(define_int_iterator SHA256_OP [
+ UNSPEC_SHA_256_SIG0 UNSPEC_SHA_256_SIG1
+ UNSPEC_SHA_256_SUM0 UNSPEC_SHA_256_SUM1])
+(define_int_attr sha256_op [
+ (UNSPEC_SHA_256_SIG0 "sha256sig0") (UNSPEC_SHA_256_SIG1 "sha256sig1")
+ (UNSPEC_SHA_256_SUM0 "sha256sum0") (UNSPEC_SHA_256_SUM1 "sha256sum1")])
+
+(define_insn "*riscv_<sha256_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SHA256_OP))]
+ "TARGET_ZKNH && !TARGET_64BIT"
+ "<sha256_op>\t%0,%1"
[(set_attr "type" "crypto")])
-(define_insn "riscv_sha256sum0_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SHA_256_SUM0))]
- "TARGET_ZKNH"
- "sha256sum0\t%0,%1"
+(define_insn "riscv_<sha256_op>_di_extended"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (sign_extend:DI
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SHA256_OP)))]
+ "TARGET_ZKNH && TARGET_64BIT"
+ "<sha256_op>\t%0,%1"
[(set_attr "type" "crypto")])
-(define_insn "riscv_sha256sum1_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SHA_256_SUM1))]
+(define_expand "riscv_<sha256_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SHA256_OP))]
"TARGET_ZKNH"
- "sha256sum1\t%0,%1"
+ {
+ if (TARGET_64BIT)
+ {
+ rtx t = gen_reg_rtx (DImode);
+ emit_insn (gen_riscv_<sha256_op>_di_extended (t, operands[1]));
+ t = gen_lowpart (SImode, t);
+ SUBREG_PROMOTED_VAR_P (t) = 1;
+ SUBREG_PROMOTED_SET (t, SRP_SIGNED);
+ emit_move_insn (operands[0], t);
+ DONE;
+ }
+ }
[(set_attr "type" "crypto")])
;; ZKNH - SHA512
@@ -372,40 +383,88 @@
;; ZKSH
-(define_insn "riscv_sm3p0_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SM3_P0))]
- "TARGET_ZKSH"
- "sm3p0\t%0,%1"
+(define_int_iterator SM3_OP [UNSPEC_SM3_P0 UNSPEC_SM3_P1])
+(define_int_attr sm3_op [(UNSPEC_SM3_P0 "sm3p0") (UNSPEC_SM3_P1 "sm3p1")])
+
+(define_insn "*riscv_<sm3_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SM3_OP))]
+ "TARGET_ZKSH && !TARGET_64BIT"
+ "<sm3_op>\t%0,%1"
[(set_attr "type" "crypto")])
-(define_insn "riscv_sm3p1_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")]
- UNSPEC_SM3_P1))]
+(define_insn "riscv_<sm3_op>_di_extended"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (sign_extend:DI
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SM3_OP)))]
+ "TARGET_ZKSH && TARGET_64BIT"
+ "<sm3_op>\t%0,%1"
+ [(set_attr "type" "crypto")])
+
+(define_expand "riscv_<sm3_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")]
+ SM3_OP))]
"TARGET_ZKSH"
- "sm3p1\t%0,%1"
+ {
+ if (TARGET_64BIT)
+ {
+ rtx t = gen_reg_rtx (DImode);
+ emit_insn (gen_riscv_<sm3_op>_di_extended (t, operands[1]));
+ t = gen_lowpart (SImode, t);
+ SUBREG_PROMOTED_VAR_P (t) = 1;
+ SUBREG_PROMOTED_SET (t, SRP_SIGNED);
+ emit_move_insn (operands[0], t);
+ DONE;
+ }
+ }
[(set_attr "type" "crypto")])
;; ZKSED
-(define_insn "riscv_sm4ed_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")
- (match_operand:X 2 "register_operand" "r")
- (match_operand:SI 3 "register_operand" "D03")]
- UNSPEC_SM4_ED))]
- "TARGET_ZKSED"
- "sm4ed\t%0,%1,%2,%3"
+(define_int_iterator SM4_OP [UNSPEC_SM4_ED UNSPEC_SM4_KS])
+(define_int_attr sm4_op [(UNSPEC_SM4_ED "sm4ed") (UNSPEC_SM4_KS "sm4ks")])
+
+(define_insn "*riscv_<sm4_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")
+ (match_operand:SI 3 "register_operand" "D03")]
+ SM4_OP))]
+ "TARGET_ZKSED && !TARGET_64BIT"
+ "<sm4_op>\t%0,%1,%2,%3"
[(set_attr "type" "crypto")])
-(define_insn "riscv_sm4ks_<mode>"
- [(set (match_operand:X 0 "register_operand" "=r")
- (unspec:X [(match_operand:X 1 "register_operand" "r")
- (match_operand:X 2 "register_operand" "r")
- (match_operand:SI 3 "register_operand" "D03")]
- UNSPEC_SM4_KS))]
+(define_insn "riscv_<sm4_op>_di_extended"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (sign_extend:DI
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")
+ (match_operand:SI 3 "register_operand" "D03")]
+ SM4_OP)))]
+ "TARGET_ZKSED && TARGET_64BIT"
+ "<sm4_op>\t%0,%1,%2,%3"
+ [(set_attr "type" "crypto")])
+
+(define_expand "riscv_<sm4_op>_si"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI [(match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")
+ (match_operand:SI 3 "register_operand" "D03")]
+ SM4_OP))]
"TARGET_ZKSED"
- "sm4ks\t%0,%1,%2,%3"
+ {
+ if (TARGET_64BIT)
+ {
+ rtx t = gen_reg_rtx (DImode);
+ emit_insn (gen_riscv_<sm4_op>_di_extended (t, operands[1], operands[2], operands[3]));
+ t = gen_lowpart (SImode, t);
+ SUBREG_PROMOTED_VAR_P (t) = 1;
+ SUBREG_PROMOTED_SET (t, SRP_SIGNED);
+ emit_move_insn (operands[0], t);
+ DONE;
+ }
+ }
[(set_attr "type" "crypto")])
diff --git a/gcc/config/riscv/predicates.md b/gcc/config/riscv/predicates.md
index 53e7c1d..4bc7ff2 100644
--- a/gcc/config/riscv/predicates.md
+++ b/gcc/config/riscv/predicates.md
@@ -74,6 +74,7 @@
(ior (match_operand 0 "const_0_operand")
(match_operand 0 "register_operand")))
+;; ZCMP predicates
(define_predicate "stack_push_up_to_ra_operand"
(and (match_code "const_int")
(match_test "riscv_zcmp_valid_stack_adj_bytes_p (INTVAL (op) * -1, 1)")))
@@ -170,13 +171,12 @@
(and (match_code "const_int")
(match_test "riscv_zcmp_valid_stack_adj_bytes_p (INTVAL (op), 13)")))
-;; ZCMP predicates
(define_predicate "a0a1_reg_operand"
- (and (match_operand 0 "register_operand")
+ (and (match_code "reg")
(match_test "IN_RANGE (REGNO (op), A0_REGNUM, A1_REGNUM)")))
(define_predicate "zcmp_mv_sreg_operand"
- (and (match_operand 0 "register_operand")
+ (and (match_code "reg")
(match_test "TARGET_RVE ? IN_RANGE (REGNO (op), S0_REGNUM, S1_REGNUM)
: IN_RANGE (REGNO (op), S0_REGNUM, S1_REGNUM)
|| IN_RANGE (REGNO (op), S2_REGNUM, S7_REGNUM)")))
diff --git a/gcc/config/riscv/riscv-builtins.cc b/gcc/config/riscv/riscv-builtins.cc
index 8afe7b7..3fe3a89 100644
--- a/gcc/config/riscv/riscv-builtins.cc
+++ b/gcc/config/riscv/riscv-builtins.cc
@@ -112,12 +112,11 @@ AVAIL (crypto_zknd64, TARGET_ZKND && TARGET_64BIT)
AVAIL (crypto_zkne32, TARGET_ZKNE && !TARGET_64BIT)
AVAIL (crypto_zkne64, TARGET_ZKNE && TARGET_64BIT)
AVAIL (crypto_zkne_or_zknd, (TARGET_ZKNE || TARGET_ZKND) && TARGET_64BIT)
+AVAIL (crypto_zknh, TARGET_ZKNH)
AVAIL (crypto_zknh32, TARGET_ZKNH && !TARGET_64BIT)
AVAIL (crypto_zknh64, TARGET_ZKNH && TARGET_64BIT)
-AVAIL (crypto_zksh32, TARGET_ZKSH && !TARGET_64BIT)
-AVAIL (crypto_zksh64, TARGET_ZKSH && TARGET_64BIT)
-AVAIL (crypto_zksed32, TARGET_ZKSED && !TARGET_64BIT)
-AVAIL (crypto_zksed64, TARGET_ZKSED && TARGET_64BIT)
+AVAIL (crypto_zksh, TARGET_ZKSH)
+AVAIL (crypto_zksed, TARGET_ZKSED)
AVAIL (clmul_zbkc32_or_zbc32, (TARGET_ZBKC || TARGET_ZBC) && !TARGET_64BIT)
AVAIL (clmul_zbkc64_or_zbc64, (TARGET_ZBKC || TARGET_ZBC) && TARGET_64BIT)
AVAIL (clmulr_zbc32, TARGET_ZBC && !TARGET_64BIT)
@@ -155,11 +154,10 @@ AVAIL (hint_pause, (!0))
/* Argument types. */
#define RISCV_ATYPE_VOID void_type_node
+#define RISCV_ATYPE_UQI unsigned_intQI_type_node
+#define RISCV_ATYPE_UHI unsigned_intHI_type_node
#define RISCV_ATYPE_USI unsigned_intSI_type_node
-#define RISCV_ATYPE_QI intQI_type_node
-#define RISCV_ATYPE_HI intHI_type_node
-#define RISCV_ATYPE_SI intSI_type_node
-#define RISCV_ATYPE_DI intDI_type_node
+#define RISCV_ATYPE_UDI unsigned_intDI_type_node
#define RISCV_ATYPE_VOID_PTR ptr_type_node
/* RISCV_FTYPE_ATYPESN takes N RISCV_FTYPES-like type codes and lists
diff --git a/gcc/config/riscv/riscv-cmo.def b/gcc/config/riscv/riscv-cmo.def
index b92044d..ff713b7 100644
--- a/gcc/config/riscv/riscv-cmo.def
+++ b/gcc/config/riscv/riscv-cmo.def
@@ -13,15 +13,15 @@ RISCV_BUILTIN (zero_si, "zicboz_cbo_zero", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV
RISCV_BUILTIN (zero_di, "zicboz_cbo_zero", RISCV_BUILTIN_DIRECT_NO_TARGET, RISCV_VOID_FTYPE_VOID_PTR, zero64),
// zicbop
-RISCV_BUILTIN (prefetchi_si, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, prefetchi32),
-RISCV_BUILTIN (prefetchi_di, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, prefetchi64),
+RISCV_BUILTIN (prefetchi_si, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, prefetchi32),
+RISCV_BUILTIN (prefetchi_di, "zicbop_cbo_prefetchi", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI, prefetchi64),
// zbkc or zbc
-RISCV_BUILTIN (clmul_si, "clmul", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI, clmul_zbkc32_or_zbc32),
-RISCV_BUILTIN (clmul_di, "clmul", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI, clmul_zbkc64_or_zbc64),
-RISCV_BUILTIN (clmulh_si, "clmulh", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI, clmul_zbkc32_or_zbc32),
-RISCV_BUILTIN (clmulh_di, "clmulh", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI, clmul_zbkc64_or_zbc64),
+RISCV_BUILTIN (clmul_si, "clmul", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmul_zbkc32_or_zbc32),
+RISCV_BUILTIN (clmul_di, "clmul", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
+RISCV_BUILTIN (clmulh_si, "clmulh", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmul_zbkc32_or_zbc32),
+RISCV_BUILTIN (clmulh_di, "clmulh", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmul_zbkc64_or_zbc64),
// zbc
-RISCV_BUILTIN (clmulr_si, "clmulr", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI, clmulr_zbc32),
-RISCV_BUILTIN (clmulr_di, "clmulr", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI, clmulr_zbc64),
+RISCV_BUILTIN (clmulr_si, "clmulr", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, clmulr_zbc32),
+RISCV_BUILTIN (clmulr_di, "clmulr", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, clmulr_zbc64),
diff --git a/gcc/config/riscv/riscv-ftypes.def b/gcc/config/riscv/riscv-ftypes.def
index 3b51819..33620c5 100644
--- a/gcc/config/riscv/riscv-ftypes.def
+++ b/gcc/config/riscv/riscv-ftypes.def
@@ -30,15 +30,14 @@ DEF_RISCV_FTYPE (0, (USI))
DEF_RISCV_FTYPE (0, (VOID))
DEF_RISCV_FTYPE (1, (VOID, USI))
DEF_RISCV_FTYPE (1, (VOID, VOID_PTR))
-DEF_RISCV_FTYPE (1, (SI, SI))
-DEF_RISCV_FTYPE (1, (DI, DI))
-DEF_RISCV_FTYPE (2, (SI, QI, QI))
-DEF_RISCV_FTYPE (2, (SI, HI, HI))
-DEF_RISCV_FTYPE (2, (SI, SI, SI))
-DEF_RISCV_FTYPE (2, (DI, QI, QI))
-DEF_RISCV_FTYPE (2, (DI, HI, HI))
-DEF_RISCV_FTYPE (2, (DI, SI, SI))
-DEF_RISCV_FTYPE (2, (DI, DI, SI))
-DEF_RISCV_FTYPE (2, (DI, DI, DI))
-DEF_RISCV_FTYPE (3, (SI, SI, SI, SI))
-DEF_RISCV_FTYPE (3, (DI, DI, DI, SI))
+DEF_RISCV_FTYPE (1, (USI, USI))
+DEF_RISCV_FTYPE (1, (UDI, UDI))
+DEF_RISCV_FTYPE (2, (USI, UQI, UQI))
+DEF_RISCV_FTYPE (2, (USI, UHI, UHI))
+DEF_RISCV_FTYPE (2, (USI, USI, USI))
+DEF_RISCV_FTYPE (2, (UDI, UQI, UQI))
+DEF_RISCV_FTYPE (2, (UDI, UHI, UHI))
+DEF_RISCV_FTYPE (2, (UDI, USI, USI))
+DEF_RISCV_FTYPE (2, (UDI, UDI, USI))
+DEF_RISCV_FTYPE (2, (UDI, UDI, UDI))
+DEF_RISCV_FTYPE (3, (USI, USI, USI, USI))
diff --git a/gcc/config/riscv/riscv-protos.h b/gcc/config/riscv/riscv-protos.h
index e91a55e..5a2d218 100644
--- a/gcc/config/riscv/riscv-protos.h
+++ b/gcc/config/riscv/riscv-protos.h
@@ -244,8 +244,8 @@ enum insn_flags : unsigned int
/* Means INSN need two operands to do the operation. */
TERNARY_OP_P = 1 << 13,
- /* flags for get mask mode from the index number. default from dest operand. */
- MASK_MODE_FROM_OP1_P = 1 << 14,
+ /* flags for get vtype mode from the index number. default from dest operand. */
+ VTYPE_MODE_FROM_OP1_P = 1 << 14,
/* flags for the floating-point rounding mode. */
/* Means INSN has FRM operand and the value is FRM_DYN. */
@@ -321,7 +321,7 @@ enum insn_type : unsigned int
/* For vcpop.m, no merge operand, no tail and mask policy operands. */
CPOP_OP = HAS_DEST_P | HAS_MASK_P | USE_ALL_TRUES_MASK_P | UNARY_OP_P
- | MASK_MODE_FROM_OP1_P,
+ | VTYPE_MODE_FROM_OP1_P,
/* For mask instrunctions, no tail and mask policy operands. */
UNARY_MASK_OP = HAS_DEST_P | HAS_MASK_P | USE_ALL_TRUES_MASK_P | HAS_MERGE_P
@@ -336,10 +336,10 @@ enum insn_type : unsigned int
= HAS_DEST_P | HAS_MERGE_P | TDEFAULT_POLICY_P | BINARY_OP_P,
/* For vreduce, no mask policy operand. */
- REDUCE_OP = __NORMAL_OP_TA | BINARY_OP_P | MASK_MODE_FROM_OP1_P,
- REDUCE_OP_FRM_DYN = REDUCE_OP | FRM_DYN_P | MASK_MODE_FROM_OP1_P,
+ REDUCE_OP = __NORMAL_OP_TA | BINARY_OP_P | VTYPE_MODE_FROM_OP1_P,
+ REDUCE_OP_FRM_DYN = REDUCE_OP | FRM_DYN_P | VTYPE_MODE_FROM_OP1_P,
REDUCE_OP_M_FRM_DYN
- = __MASK_OP_TA | BINARY_OP_P | FRM_DYN_P | MASK_MODE_FROM_OP1_P,
+ = __MASK_OP_TA | BINARY_OP_P | FRM_DYN_P | VTYPE_MODE_FROM_OP1_P,
/* For vmv.s.x/vfmv.s.f. */
SCALAR_MOVE_OP = HAS_DEST_P | HAS_MASK_P | USE_ONE_TRUE_MASK_P | HAS_MERGE_P
@@ -414,12 +414,6 @@ enum mask_policy
/* Return true if VALUE is agnostic or any policy. */
#define IS_AGNOSTIC(VALUE) (bool) (VALUE & 0x1 || (VALUE >> 1 & 0x1))
-enum class reduction_type
-{
- UNORDERED,
- FOLD_LEFT,
- MASK_LEN_FOLD_LEFT,
-};
enum tail_policy get_prefer_tail_policy ();
enum mask_policy get_prefer_mask_policy ();
rtx get_avl_type_rtx (enum avl_type);
@@ -433,8 +427,7 @@ void expand_vec_cmp (rtx, rtx_code, rtx, rtx);
bool expand_vec_cmp_float (rtx, rtx_code, rtx, rtx, bool);
void expand_cond_len_unop (unsigned, rtx *);
void expand_cond_len_binop (unsigned, rtx *);
-void expand_reduction (rtx_code, rtx *, rtx,
- reduction_type = reduction_type::UNORDERED);
+void expand_reduction (unsigned, unsigned, rtx *, rtx);
#endif
bool sew64_scalar_helper (rtx *, rtx *, rtx, machine_mode,
bool, void (*)(rtx *, rtx));
@@ -517,6 +510,10 @@ const unsigned int RISCV_BUILTIN_SHIFT = 1;
/* Mask that selects the riscv_builtin_class part of a function code. */
const unsigned int RISCV_BUILTIN_CLASS = (1 << RISCV_BUILTIN_SHIFT) - 1;
+/* Routines implemented in riscv-string.cc. */
+extern bool riscv_expand_strcmp (rtx, rtx, rtx, rtx, rtx);
+extern bool riscv_expand_strlen (rtx, rtx, rtx, rtx);
+
/* Routines implemented in thead.cc. */
extern bool th_mempair_operands_p (rtx[4], bool, machine_mode);
extern void th_mempair_order_operands (rtx[4], bool, machine_mode);
diff --git a/gcc/config/riscv/riscv-scalar-crypto.def b/gcc/config/riscv/riscv-scalar-crypto.def
index c2caed5..3db9ed4 100644
--- a/gcc/config/riscv/riscv-scalar-crypto.def
+++ b/gcc/config/riscv/riscv-scalar-crypto.def
@@ -18,71 +18,63 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
// ZBKB
-RISCV_BUILTIN (pack_sihi, "pack", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_HI_HI, crypto_zbkb32),
-RISCV_BUILTIN (pack_disi, "pack", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_SI_SI, crypto_zbkb64),
+RISCV_BUILTIN (pack_sihi, "pack", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UHI_UHI, crypto_zbkb32),
+RISCV_BUILTIN (pack_disi, "pack", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_USI_USI, crypto_zbkb64),
-RISCV_BUILTIN (packh_si, "packh", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_QI_QI, crypto_zbkb32),
-RISCV_BUILTIN (packh_di, "packh", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_QI_QI, crypto_zbkb64),
+RISCV_BUILTIN (packh_si, "packh", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_UQI_UQI, crypto_zbkb32),
+RISCV_BUILTIN (packh_di, "packh", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UQI_UQI, crypto_zbkb64),
-RISCV_BUILTIN (packw, "packw", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_HI_HI, crypto_zbkb64),
+RISCV_BUILTIN (packw, "packw", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UHI_UHI, crypto_zbkb64),
-RISCV_BUILTIN (zip, "zip", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zbkb32),
-RISCV_BUILTIN (unzip, "unzip", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zbkb32),
+RISCV_BUILTIN (zip, "zip", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb32),
+RISCV_BUILTIN (unzip, "unzip", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb32),
-RISCV_BUILTIN (brev8_si, "brev8", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zbkb32),
-RISCV_BUILTIN (brev8_di, "brev8", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zbkb64),
+RISCV_BUILTIN (brev8_si, "brev8", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zbkb32),
+RISCV_BUILTIN (brev8_di, "brev8", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI, crypto_zbkb64),
// ZBKX
-RISCV_BUILTIN (xperm4_si, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI, crypto_zbkx32),
-RISCV_BUILTIN (xperm4_di, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI, crypto_zbkx64),
-RISCV_BUILTIN (xperm8_si, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI, crypto_zbkx32),
-RISCV_BUILTIN (xperm8_di, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI, crypto_zbkx64),
+RISCV_BUILTIN (xperm4_si, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
+RISCV_BUILTIN (xperm4_di, "xperm4", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
+RISCV_BUILTIN (xperm8_si, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI, crypto_zbkx32),
+RISCV_BUILTIN (xperm8_di, "xperm8", RISCV_BUILTIN_DIRECT, RISCV_UDI_FTYPE_UDI_UDI, crypto_zbkx64),
// ZKND
-DIRECT_BUILTIN (aes32dsi, RISCV_SI_FTYPE_SI_SI_SI, crypto_zknd32),
-DIRECT_BUILTIN (aes32dsmi, RISCV_SI_FTYPE_SI_SI_SI, crypto_zknd32),
-DIRECT_BUILTIN (aes64ds, RISCV_DI_FTYPE_DI_DI, crypto_zknd64),
-DIRECT_BUILTIN (aes64dsm, RISCV_DI_FTYPE_DI_DI, crypto_zknd64),
-DIRECT_BUILTIN (aes64im, RISCV_DI_FTYPE_DI, crypto_zknd64),
-DIRECT_BUILTIN (aes64ks1i, RISCV_DI_FTYPE_DI_SI, crypto_zkne_or_zknd),
-DIRECT_BUILTIN (aes64ks2, RISCV_DI_FTYPE_DI_DI, crypto_zkne_or_zknd),
+DIRECT_BUILTIN (aes32dsi, RISCV_USI_FTYPE_USI_USI_USI, crypto_zknd32),
+DIRECT_BUILTIN (aes32dsmi, RISCV_USI_FTYPE_USI_USI_USI, crypto_zknd32),
+DIRECT_BUILTIN (aes64ds, RISCV_UDI_FTYPE_UDI_UDI, crypto_zknd64),
+DIRECT_BUILTIN (aes64dsm, RISCV_UDI_FTYPE_UDI_UDI, crypto_zknd64),
+DIRECT_BUILTIN (aes64im, RISCV_UDI_FTYPE_UDI, crypto_zknd64),
+DIRECT_BUILTIN (aes64ks1i, RISCV_UDI_FTYPE_UDI_USI, crypto_zkne_or_zknd),
+DIRECT_BUILTIN (aes64ks2, RISCV_UDI_FTYPE_UDI_UDI, crypto_zkne_or_zknd),
// ZKNE
-DIRECT_BUILTIN (aes32esi, RISCV_SI_FTYPE_SI_SI_SI, crypto_zkne32),
-DIRECT_BUILTIN (aes32esmi, RISCV_SI_FTYPE_SI_SI_SI, crypto_zkne32),
-DIRECT_BUILTIN (aes64es, RISCV_DI_FTYPE_DI_DI, crypto_zkne64),
-DIRECT_BUILTIN (aes64esm, RISCV_DI_FTYPE_DI_DI, crypto_zkne64),
+DIRECT_BUILTIN (aes32esi, RISCV_USI_FTYPE_USI_USI_USI, crypto_zkne32),
+DIRECT_BUILTIN (aes32esmi, RISCV_USI_FTYPE_USI_USI_USI, crypto_zkne32),
+DIRECT_BUILTIN (aes64es, RISCV_UDI_FTYPE_UDI_UDI, crypto_zkne64),
+DIRECT_BUILTIN (aes64esm, RISCV_UDI_FTYPE_UDI_UDI, crypto_zkne64),
// ZKNH
-RISCV_BUILTIN (sha256sig0_si, "sha256sig0", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zknh32),
-RISCV_BUILTIN (sha256sig0_di, "sha256sig0", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zknh64),
-RISCV_BUILTIN (sha256sig1_si, "sha256sig1", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zknh32),
-RISCV_BUILTIN (sha256sig1_di, "sha256sig1", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zknh64),
-RISCV_BUILTIN (sha256sum0_si, "sha256sum0", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zknh32),
-RISCV_BUILTIN (sha256sum0_di, "sha256sum0", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zknh64),
-RISCV_BUILTIN (sha256sum1_si, "sha256sum1", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zknh32),
-RISCV_BUILTIN (sha256sum1_di, "sha256sum1", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zknh64),
-
-DIRECT_BUILTIN (sha512sig0h, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-DIRECT_BUILTIN (sha512sig0l, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-DIRECT_BUILTIN (sha512sig1h, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-DIRECT_BUILTIN (sha512sig1l, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-DIRECT_BUILTIN (sha512sum0r, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-DIRECT_BUILTIN (sha512sum1r, RISCV_SI_FTYPE_SI_SI, crypto_zknh32),
-
-DIRECT_BUILTIN (sha512sig0, RISCV_DI_FTYPE_DI, crypto_zknh64),
-DIRECT_BUILTIN (sha512sig1, RISCV_DI_FTYPE_DI, crypto_zknh64),
-DIRECT_BUILTIN (sha512sum0, RISCV_DI_FTYPE_DI, crypto_zknh64),
-DIRECT_BUILTIN (sha512sum1, RISCV_DI_FTYPE_DI, crypto_zknh64),
+RISCV_BUILTIN (sha256sig0_si, "sha256sig0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sig1_si, "sha256sig1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sum0_si, "sha256sum0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
+RISCV_BUILTIN (sha256sum1_si, "sha256sum1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zknh),
+
+DIRECT_BUILTIN (sha512sig0h, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+DIRECT_BUILTIN (sha512sig0l, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+DIRECT_BUILTIN (sha512sig1h, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+DIRECT_BUILTIN (sha512sig1l, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+DIRECT_BUILTIN (sha512sum0r, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+DIRECT_BUILTIN (sha512sum1r, RISCV_USI_FTYPE_USI_USI, crypto_zknh32),
+
+DIRECT_BUILTIN (sha512sig0, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
+DIRECT_BUILTIN (sha512sig1, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
+DIRECT_BUILTIN (sha512sum0, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
+DIRECT_BUILTIN (sha512sum1, RISCV_UDI_FTYPE_UDI, crypto_zknh64),
// ZKSH
-RISCV_BUILTIN (sm3p0_si, "sm3p0", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zksh32),
-RISCV_BUILTIN (sm3p0_di, "sm3p0", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zksh64),
-RISCV_BUILTIN (sm3p1_si, "sm3p1", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI, crypto_zksh32),
-RISCV_BUILTIN (sm3p1_di, "sm3p1", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI, crypto_zksh64),
+RISCV_BUILTIN (sm3p0_si, "sm3p0", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zksh),
+RISCV_BUILTIN (sm3p1_si, "sm3p1", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI, crypto_zksh),
// ZKSED
-RISCV_BUILTIN (sm4ed_si, "sm4ed", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI, crypto_zksed32),
-RISCV_BUILTIN (sm4ed_di, "sm4ed", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI_SI, crypto_zksed64),
-RISCV_BUILTIN (sm4ks_si, "sm4ks", RISCV_BUILTIN_DIRECT, RISCV_SI_FTYPE_SI_SI_SI, crypto_zksed32),
-RISCV_BUILTIN (sm4ks_di, "sm4ks", RISCV_BUILTIN_DIRECT, RISCV_DI_FTYPE_DI_DI_SI, crypto_zksed64),
+RISCV_BUILTIN (sm4ed_si, "sm4ed", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
+RISCV_BUILTIN (sm4ks_si, "sm4ks", RISCV_BUILTIN_DIRECT, RISCV_USI_FTYPE_USI_USI_USI, crypto_zksed),
diff --git a/gcc/config/riscv/riscv-selftests.cc b/gcc/config/riscv/riscv-selftests.cc
index b16b5c1..cdc863e 100644
--- a/gcc/config/riscv/riscv-selftests.cc
+++ b/gcc/config/riscv/riscv-selftests.cc
@@ -343,7 +343,7 @@ run_broadcast_selftests (void)
rtx mem = gen_rtx_MEM (inner_mode, addr); \
expand_vector_broadcast (mode, mem); \
insn = get_last_insn (); \
- src = XEXP (SET_SRC (PATTERN (insn)), 1); \
+ src = SET_SRC (PATTERN (insn)); \
ASSERT_TRUE (MEM_P (XEXP (src, 0))); \
ASSERT_TRUE ( \
rtx_equal_p (src, gen_rtx_VEC_DUPLICATE (mode, XEXP (src, 0)))); \
@@ -353,7 +353,7 @@ run_broadcast_selftests (void)
rtx reg = gen_reg_rtx (inner_mode); \
expand_vector_broadcast (mode, reg); \
insn = get_last_insn (); \
- src = XEXP (SET_SRC (PATTERN (insn)), 1); \
+ src = SET_SRC (PATTERN (insn)); \
ASSERT_TRUE (REG_P (XEXP (src, 0))); \
ASSERT_TRUE ( \
rtx_equal_p (src, gen_rtx_VEC_DUPLICATE (mode, XEXP (src, 0)))); \
diff --git a/gcc/config/riscv/riscv-string.cc b/gcc/config/riscv/riscv-string.cc
new file mode 100644
index 0000000..2bdff03
--- /dev/null
+++ b/gcc/config/riscv/riscv-string.cc
@@ -0,0 +1,594 @@
+/* Subroutines used to expand string operations for RISC-V.
+ Copyright (C) 2023 Free Software Foundation, Inc.
+
+ This file is part of GCC.
+
+ GCC is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3, or (at your
+ option) any later version.
+
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
+
+#define IN_TARGET_CODE 1
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "backend.h"
+#include "rtl.h"
+#include "tree.h"
+#include "memmodel.h"
+#include "tm_p.h"
+#include "ira.h"
+#include "print-tree.h"
+#include "varasm.h"
+#include "explow.h"
+#include "expr.h"
+#include "output.h"
+#include "target.h"
+#include "predict.h"
+#include "optabs.h"
+
+/* Emit proper instruction depending on mode of dest. */
+
+#define GEN_EMIT_HELPER2(name) \
+static rtx_insn * \
+do_## name ## 2(rtx dest, rtx src) \
+{ \
+ rtx_insn *insn; \
+ if (GET_MODE (dest) == DImode) \
+ insn = emit_insn (gen_ ## name ## di2 (dest, src)); \
+ else \
+ insn = emit_insn (gen_ ## name ## si2 (dest, src)); \
+ return insn; \
+}
+
+/* Emit proper instruction depending on mode of dest. */
+
+#define GEN_EMIT_HELPER3(name) \
+static rtx_insn * \
+do_## name ## 3(rtx dest, rtx src1, rtx src2) \
+{ \
+ rtx_insn *insn; \
+ if (GET_MODE (dest) == DImode) \
+ insn = emit_insn (gen_ ## name ## di3 (dest, src1, src2)); \
+ else \
+ insn = emit_insn (gen_ ## name ## si3 (dest, src1, src2)); \
+ return insn; \
+}
+
+GEN_EMIT_HELPER3(add) /* do_add3 */
+GEN_EMIT_HELPER3(and) /* do_and3 */
+GEN_EMIT_HELPER3(ashl) /* do_ashl3 */
+GEN_EMIT_HELPER2(bswap) /* do_bswap2 */
+GEN_EMIT_HELPER2(clz) /* do_clz2 */
+GEN_EMIT_HELPER2(ctz) /* do_ctz2 */
+GEN_EMIT_HELPER3(ior) /* do_ior3 */
+GEN_EMIT_HELPER3(ior_not) /* do_ior_not3 */
+GEN_EMIT_HELPER3(lshr) /* do_lshr3 */
+GEN_EMIT_HELPER2(neg) /* do_neg2 */
+GEN_EMIT_HELPER2(orcb) /* do_orcb2 */
+GEN_EMIT_HELPER2(one_cmpl) /* do_one_cmpl2 */
+GEN_EMIT_HELPER3(rotr) /* do_rotr3 */
+GEN_EMIT_HELPER3(sub) /* do_sub3 */
+GEN_EMIT_HELPER2(th_rev) /* do_th_rev2 */
+GEN_EMIT_HELPER2(th_tstnbz) /* do_th_tstnbz2 */
+GEN_EMIT_HELPER3(xor) /* do_xor3 */
+GEN_EMIT_HELPER2(zero_extendqi) /* do_zero_extendqi2 */
+
+#undef GEN_EMIT_HELPER2
+#undef GEN_EMIT_HELPER3
+
+/* Helper function to load a byte or a Pmode register.
+
+ MODE is the mode to use for the load (QImode or Pmode).
+ DEST is the destination register for the data.
+ ADDR_REG is the register that holds the address.
+ ADDR is the address expression to load from.
+
+ This function returns an rtx containing the register,
+ where the ADDR is stored. */
+
+static rtx
+do_load_from_addr (machine_mode mode, rtx dest, rtx addr_reg, rtx addr)
+{
+ rtx mem = gen_rtx_MEM (mode, addr_reg);
+ MEM_COPY_ATTRIBUTES (mem, addr);
+ set_mem_size (mem, GET_MODE_SIZE (mode));
+
+ if (mode == QImode)
+ do_zero_extendqi2 (dest, mem);
+ else if (mode == Xmode)
+ emit_move_insn (dest, mem);
+ else
+ gcc_unreachable ();
+
+ return addr_reg;
+}
+
+/* Generate a sequence to compare single characters in data1 and data2.
+
+ RESULT is the register where the return value of str(n)cmp will be stored.
+ DATA1 is a register which contains character1.
+ DATA2 is a register which contains character2.
+ FINAL_LABEL is the location after the calculation of the return value. */
+
+static void
+emit_strcmp_scalar_compare_byte (rtx result, rtx data1, rtx data2,
+ rtx final_label)
+{
+ rtx tmp = gen_reg_rtx (Xmode);
+ do_sub3 (tmp, data1, data2);
+ emit_insn (gen_movsi (result, gen_lowpart (SImode, tmp)));
+ emit_jump_insn (gen_jump (final_label));
+ emit_barrier (); /* No fall-through. */
+}
+
+/* Generate a sequence to compare two strings in data1 and data2.
+
+ DATA1 is a register which contains string1.
+ DATA2 is a register which contains string2.
+ ORC1 is a register where orc.b(data1) will be stored.
+ CMP_BYTES is the length of the strings.
+ END_LABEL is the location of the code that calculates the return value. */
+
+static void
+emit_strcmp_scalar_compare_subword (rtx data1, rtx data2, rtx orc1,
+ unsigned HOST_WIDE_INT cmp_bytes,
+ rtx end_label)
+{
+ /* Set a NUL-byte after the relevant data (behind the string). */
+ long long im = -256ll;
+ rtx imask = gen_rtx_CONST_INT (Xmode, im);
+ rtx m_reg = gen_reg_rtx (Xmode);
+ emit_insn (gen_rtx_SET (m_reg, imask));
+ do_rotr3 (m_reg, m_reg, GEN_INT (64 - cmp_bytes * BITS_PER_UNIT));
+ do_and3 (data1, m_reg, data1);
+ do_and3 (data2, m_reg, data2);
+ if (TARGET_ZBB)
+ do_orcb2 (orc1, data1);
+ else
+ do_th_tstnbz2 (orc1, data1);
+ emit_jump_insn (gen_jump (end_label));
+ emit_barrier (); /* No fall-through. */
+}
+
+/* Generate a sequence to compare two strings in data1 and data2.
+
+ DATA1 is a register which contains string1.
+ DATA2 is a register which contains string2.
+ ORC1 is a register where orc.b(data1) will be stored.
+ TESTVAL is the value to test ORC1 against.
+ END_LABEL is the location of the code that calculates the return value.
+ NONUL_END_LABEL is the location of the code that calculates the return value
+ in case the first string does not contain a NULL-byte. */
+
+static void
+emit_strcmp_scalar_compare_word (rtx data1, rtx data2, rtx orc1, rtx testval,
+ rtx end_label, rtx nonul_end_label)
+{
+ /* Check if data1 contains a NUL character. */
+ if (TARGET_ZBB)
+ do_orcb2 (orc1, data1);
+ else
+ do_th_tstnbz2 (orc1, data1);
+ rtx cond1 = gen_rtx_NE (VOIDmode, orc1, testval);
+ emit_unlikely_jump_insn (gen_cbranch4 (Pmode, cond1, orc1, testval,
+ end_label));
+ /* Break out if u1 != u2 */
+ rtx cond2 = gen_rtx_NE (VOIDmode, data1, data2);
+ emit_unlikely_jump_insn (gen_cbranch4 (Pmode, cond2, data1,
+ data2, nonul_end_label));
+ /* Fall-through on equality. */
+}
+
+/* Generate the sequence of compares for strcmp/strncmp using zbb instructions.
+
+ RESULT is the register where the return value of str(n)cmp will be stored.
+ The strings are referenced by SRC1 and SRC2.
+ The number of bytes to compare is defined by NBYTES.
+ DATA1 is a register where string1 will be stored.
+ DATA2 is a register where string2 will be stored.
+ ORC1 is a register where orc.b(data1) will be stored.
+ END_LABEL is the location of the code that calculates the return value.
+ NONUL_END_LABEL is the location of the code that calculates the return value
+ in case the first string does not contain a NULL-byte.
+ FINAL_LABEL is the location of the code that comes after the calculation
+ of the return value. */
+
+static void
+emit_strcmp_scalar_load_and_compare (rtx result, rtx src1, rtx src2,
+ unsigned HOST_WIDE_INT nbytes,
+ rtx data1, rtx data2, rtx orc1,
+ rtx end_label, rtx nonul_end_label,
+ rtx final_label)
+{
+ const unsigned HOST_WIDE_INT xlen = GET_MODE_SIZE (Xmode);
+ rtx src1_addr = force_reg (Pmode, XEXP (src1, 0));
+ rtx src2_addr = force_reg (Pmode, XEXP (src2, 0));
+ unsigned HOST_WIDE_INT offset = 0;
+
+ rtx testval = gen_reg_rtx (Xmode);
+ if (TARGET_ZBB)
+ emit_insn (gen_rtx_SET (testval, constm1_rtx));
+ else
+ emit_insn (gen_rtx_SET (testval, const0_rtx));
+
+ while (nbytes > 0)
+ {
+ unsigned HOST_WIDE_INT cmp_bytes = xlen < nbytes ? xlen : nbytes;
+ machine_mode load_mode;
+ if (cmp_bytes == 1)
+ load_mode = QImode;
+ else
+ load_mode = Xmode;
+
+ rtx addr1 = gen_rtx_PLUS (Pmode, src1_addr, GEN_INT (offset));
+ do_load_from_addr (load_mode, data1, addr1, src1);
+ rtx addr2 = gen_rtx_PLUS (Pmode, src2_addr, GEN_INT (offset));
+ do_load_from_addr (load_mode, data2, addr2, src2);
+
+ if (cmp_bytes == 1)
+ {
+ emit_strcmp_scalar_compare_byte (result, data1, data2, final_label);
+ return;
+ }
+ else if (cmp_bytes < xlen)
+ {
+ emit_strcmp_scalar_compare_subword (data1, data2, orc1,
+ cmp_bytes, end_label);
+ return;
+ }
+ else
+ emit_strcmp_scalar_compare_word (data1, data2, orc1, testval,
+ end_label, nonul_end_label);
+
+ offset += cmp_bytes;
+ nbytes -= cmp_bytes;
+ }
+}
+
+/* Fixup pointers and generate a call to strcmp.
+
+ RESULT is the register where the return value of str(n)cmp will be stored.
+ The strings are referenced by SRC1 and SRC2.
+ The number of already compared bytes is defined by NBYTES. */
+
+static void
+emit_strcmp_scalar_call_to_libc (rtx result, rtx src1, rtx src2,
+ unsigned HOST_WIDE_INT nbytes)
+{
+ /* Update pointers past what has been compared already. */
+ rtx src1_addr = force_reg (Pmode, XEXP (src1, 0));
+ rtx src2_addr = force_reg (Pmode, XEXP (src2, 0));
+ rtx src1_new = force_reg (Pmode,
+ gen_rtx_PLUS (Pmode, src1_addr, GEN_INT (nbytes)));
+ rtx src2_new = force_reg (Pmode,
+ gen_rtx_PLUS (Pmode, src2_addr, GEN_INT (nbytes)));
+
+ /* Construct call to strcmp to compare the rest of the string. */
+ tree fun = builtin_decl_explicit (BUILT_IN_STRCMP);
+ emit_library_call_value (XEXP (DECL_RTL (fun), 0),
+ result, LCT_NORMAL, GET_MODE (result),
+ src1_new, Pmode, src2_new, Pmode);
+}
+
+/* Fast strcmp-result calculation if no NULL-byte in string1.
+
+ RESULT is the register where the return value of str(n)cmp will be stored.
+ The mismatching strings are stored in DATA1 and DATA2. */
+
+static void
+emit_strcmp_scalar_result_calculation_nonul (rtx result, rtx data1, rtx data2)
+{
+ /* Words don't match, and no NUL byte in one word.
+ Get bytes in big-endian order and compare as words. */
+ do_bswap2 (data1, data1);
+ do_bswap2 (data2, data2);
+ /* Synthesize (data1 >= data2) ? 1 : -1 in a branchless sequence. */
+ rtx tmp = gen_reg_rtx (Xmode);
+ emit_insn (gen_slt_3 (LTU, Xmode, Xmode, tmp, data1, data2));
+ do_neg2 (tmp, tmp);
+ do_ior3 (tmp, tmp, const1_rtx);
+ emit_insn (gen_movsi (result, gen_lowpart (SImode, tmp)));
+}
+
+/* strcmp-result calculation.
+
+ RESULT is the register where the return value of str(n)cmp will be stored.
+ The strings are stored in DATA1 and DATA2.
+ ORC1 contains orc.b(DATA1). */
+
+static void
+emit_strcmp_scalar_result_calculation (rtx result, rtx data1, rtx data2,
+ rtx orc1)
+{
+ const unsigned HOST_WIDE_INT xlen = GET_MODE_SIZE (Xmode);
+
+ /* Convert non-equal bytes into non-NUL bytes. */
+ rtx diff = gen_reg_rtx (Xmode);
+ do_xor3 (diff, data1, data2);
+ rtx shift = gen_reg_rtx (Xmode);
+
+ if (TARGET_ZBB)
+ {
+ /* Convert non-equal or NUL-bytes into non-NUL bytes. */
+ rtx syndrome = gen_reg_rtx (Xmode);
+ do_orcb2 (diff, diff);
+ do_ior_not3 (syndrome, orc1, diff);
+ /* Count the number of equal bits from the beginning of the word. */
+ do_ctz2 (shift, syndrome);
+ }
+ else
+ {
+ /* Convert non-equal or NUL-bytes into non-NUL bytes. */
+ rtx syndrome = gen_reg_rtx (Xmode);
+ do_th_tstnbz2 (diff, diff);
+ do_one_cmpl2 (diff, diff);
+ do_ior3 (syndrome, orc1, diff);
+ /* Count the number of equal bits from the beginning of the word. */
+ do_th_rev2 (syndrome, syndrome);
+ do_clz2 (shift, syndrome);
+ }
+
+ do_bswap2 (data1, data1);
+ do_bswap2 (data2, data2);
+
+ /* The most-significant-non-zero bit of the syndrome marks either the
+ first bit that is different, or the top bit of the first zero byte.
+ Shifting left now will bring the critical information into the
+ top bits. */
+ do_ashl3 (data1, data1, gen_lowpart (QImode, shift));
+ do_ashl3 (data2, data2, gen_lowpart (QImode, shift));
+
+ /* But we need to zero-extend (char is unsigned) the value and then
+ perform a signed 32-bit subtraction. */
+ unsigned int shiftr = (xlen - 1) * BITS_PER_UNIT;
+ do_lshr3 (data1, data1, GEN_INT (shiftr));
+ do_lshr3 (data2, data2, GEN_INT (shiftr));
+ rtx tmp = gen_reg_rtx (Xmode);
+ do_sub3 (tmp, data1, data2);
+ emit_insn (gen_movsi (result, gen_lowpart (SImode, tmp)));
+}
+
+/* Expand str(n)cmp using Zbb/TheadBb instructions.
+
+ The result will be stored in RESULT.
+ The strings are referenced by SRC1 and SRC2.
+ The number of bytes to compare is defined by NBYTES.
+ The alignment is defined by ALIGNMENT.
+ If NCOMPARE is false then libc's strcmp() will be called if comparing
+ NBYTES of both strings did not find differences or NULL-bytes.
+
+ Return true if expansion was successful, or false otherwise. */
+
+static bool
+riscv_expand_strcmp_scalar (rtx result, rtx src1, rtx src2,
+ unsigned HOST_WIDE_INT nbytes,
+ unsigned HOST_WIDE_INT alignment,
+ bool ncompare)
+{
+ const unsigned HOST_WIDE_INT xlen = GET_MODE_SIZE (Xmode);
+
+ gcc_assert (TARGET_ZBB || TARGET_XTHEADBB);
+ gcc_assert (nbytes > 0);
+ gcc_assert ((int)nbytes <= riscv_strcmp_inline_limit);
+ gcc_assert (ncompare || (nbytes & (xlen - 1)) == 0);
+
+ /* Limit to 12-bits (maximum load-offset). */
+ if (nbytes > IMM_REACH)
+ nbytes = IMM_REACH;
+
+ /* We don't support big endian. */
+ if (BYTES_BIG_ENDIAN)
+ return false;
+
+ /* We need xlen-aligned strings. */
+ if (alignment < xlen)
+ return false;
+
+ /* Overall structure of emitted code:
+ Load-and-compare:
+ - Load data1 and data2
+ - Set orc1 := orc.b (data1) (or th.tstnbz)
+ - Compare strings and either:
+ - Fall-through on equality
+ - Jump to nonul_end_label if data1 !or end_label
+ - Calculate result value and jump to final_label
+ // Fall-through
+ Call-to-libc or set result to 0 (depending on ncompare)
+ Jump to final_label
+ nonul_end_label: // words don't match, and no null byte in first word.
+ Calculate result value with the use of data1, data2 and orc1
+ Jump to final_label
+ end_label:
+ Calculate result value with the use of data1, data2 and orc1
+ Jump to final_label
+ final_label:
+ // Nothing. */
+
+ rtx data1 = gen_reg_rtx (Xmode);
+ rtx data2 = gen_reg_rtx (Xmode);
+ rtx orc1 = gen_reg_rtx (Xmode);
+ rtx nonul_end_label = gen_label_rtx ();
+ rtx end_label = gen_label_rtx ();
+ rtx final_label = gen_label_rtx ();
+
+ /* Generate a sequence of zbb instructions to compare out
+ to the length specified. */
+ emit_strcmp_scalar_load_and_compare (result, src1, src2, nbytes,
+ data1, data2, orc1,
+ end_label, nonul_end_label, final_label);
+
+ /* All compared and everything was equal. */
+ if (ncompare)
+ {
+ emit_insn (gen_rtx_SET (result, gen_rtx_CONST_INT (SImode, 0)));
+ emit_jump_insn (gen_jump (final_label));
+ emit_barrier (); /* No fall-through. */
+ }
+ else
+ {
+ emit_strcmp_scalar_call_to_libc (result, src1, src2, nbytes);
+ emit_jump_insn (gen_jump (final_label));
+ emit_barrier (); /* No fall-through. */
+ }
+
+
+ emit_label (nonul_end_label);
+ emit_strcmp_scalar_result_calculation_nonul (result, data1, data2);
+ emit_jump_insn (gen_jump (final_label));
+ emit_barrier (); /* No fall-through. */
+
+ emit_label (end_label);
+ emit_strcmp_scalar_result_calculation (result, data1, data2, orc1);
+ emit_jump_insn (gen_jump (final_label));
+ emit_barrier (); /* No fall-through. */
+
+ emit_label (final_label);
+ return true;
+}
+
+/* Expand a string compare operation.
+
+ The result will be stored in RESULT.
+ The strings are referenced by SRC1 and SRC2.
+ The argument BYTES_RTX either holds the number of characters to
+ compare, or is NULL_RTX. The argument ALIGN_RTX holds the alignment.
+
+ Return true if expansion was successful, or false otherwise. */
+
+bool
+riscv_expand_strcmp (rtx result, rtx src1, rtx src2,
+ rtx bytes_rtx, rtx align_rtx)
+{
+ unsigned HOST_WIDE_INT compare_max;
+ unsigned HOST_WIDE_INT nbytes;
+ unsigned HOST_WIDE_INT alignment;
+ bool ncompare = bytes_rtx != NULL_RTX;
+ const unsigned HOST_WIDE_INT xlen = GET_MODE_SIZE (Xmode);
+
+ if (riscv_strcmp_inline_limit == 0)
+ return false;
+
+ /* Round down the comparision limit to a multiple of xlen. */
+ compare_max = riscv_strcmp_inline_limit & ~(xlen - 1);
+
+ /* Decide how many bytes to compare inline. */
+ if (bytes_rtx == NULL_RTX)
+ {
+ nbytes = compare_max;
+ }
+ else
+ {
+ /* If we have a length, it must be constant. */
+ if (!CONST_INT_P (bytes_rtx))
+ return false;
+ nbytes = UINTVAL (bytes_rtx);
+
+ /* We don't emit parts of a strncmp() call. */
+ if (nbytes > compare_max)
+ return false;
+ }
+
+ /* Guarantees:
+ - nbytes > 0
+ - nbytes <= riscv_strcmp_inline_limit
+ - nbytes is a multiple of xlen if !ncompare */
+
+ if (!CONST_INT_P (align_rtx))
+ return false;
+ alignment = UINTVAL (align_rtx);
+
+ if (TARGET_ZBB || TARGET_XTHEADBB)
+ {
+ return riscv_expand_strcmp_scalar (result, src1, src2, nbytes, alignment,
+ ncompare);
+ }
+
+ return false;
+}
+
+/* If the provided string is aligned, then read XLEN bytes
+ in a loop and use orc.b to find NUL-bytes. */
+
+static bool
+riscv_expand_strlen_scalar (rtx result, rtx src, rtx align)
+{
+ rtx testval, addr, addr_plus_regsz, word, zeros;
+ rtx loop_label, cond;
+
+ gcc_assert (TARGET_ZBB || TARGET_XTHEADBB);
+
+ /* The alignment needs to be known and big enough. */
+ if (!CONST_INT_P (align) || UINTVAL (align) < GET_MODE_SIZE (Xmode))
+ return false;
+
+ testval = gen_reg_rtx (Xmode);
+ addr = copy_addr_to_reg (XEXP (src, 0));
+ addr_plus_regsz = gen_reg_rtx (Pmode);
+ word = gen_reg_rtx (Xmode);
+ zeros = gen_reg_rtx (Xmode);
+
+ if (TARGET_ZBB)
+ emit_insn (gen_rtx_SET (testval, constm1_rtx));
+ else
+ emit_insn (gen_rtx_SET (testval, const0_rtx));
+
+ do_add3 (addr_plus_regsz, addr, GEN_INT (UNITS_PER_WORD));
+
+ loop_label = gen_label_rtx ();
+ emit_label (loop_label);
+
+ /* Load a word and use orc.b/th.tstnbz to find a zero-byte. */
+ do_load_from_addr (Xmode, word, addr, src);
+ do_add3 (addr, addr, GEN_INT (UNITS_PER_WORD));
+ if (TARGET_ZBB)
+ do_orcb2 (word, word);
+ else
+ do_th_tstnbz2 (word, word);
+ cond = gen_rtx_EQ (VOIDmode, word, testval);
+ emit_unlikely_jump_insn (gen_cbranch4 (Xmode, cond, word, testval, loop_label));
+
+ /* Calculate the return value by counting zero-bits. */
+ if (TARGET_ZBB)
+ do_one_cmpl2 (word, word);
+ if (TARGET_BIG_ENDIAN)
+ do_clz2 (zeros, word);
+ else if (TARGET_ZBB)
+ do_ctz2 (zeros, word);
+ else
+ {
+ do_th_rev2 (word, word);
+ do_clz2 (zeros, word);
+ }
+
+ do_lshr3 (zeros, zeros, GEN_INT (exact_log2 (BITS_PER_UNIT)));
+ do_add3 (addr, addr, zeros);
+ do_sub3 (result, addr, addr_plus_regsz);
+
+ return true;
+}
+
+/* Expand a strlen operation and return true if successful.
+ Return false if we should let the compiler generate normal
+ code, probably a strlen call. */
+
+bool
+riscv_expand_strlen (rtx result, rtx src, rtx search_char, rtx align)
+{
+ gcc_assert (search_char == const0_rtx);
+
+ if (TARGET_ZBB || TARGET_XTHEADBB)
+ return riscv_expand_strlen_scalar (result, src, align);
+
+ return false;
+}
diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc
index 4d95bd7..a9287e5 100644
--- a/gcc/config/riscv/riscv-v.cc
+++ b/gcc/config/riscv/riscv-v.cc
@@ -67,15 +67,26 @@ const_vlmax_p (machine_mode mode)
: false;
}
+/* Helper functions for insn_flags && insn_types */
+
+/* Return true if caller need pass mask operand for insn pattern with
+ INSN_FLAGS. */
+
+static bool
+need_mask_operand_p (unsigned insn_flags)
+{
+ return (insn_flags & HAS_MASK_P)
+ && !(insn_flags & (USE_ONE_TRUE_MASK_P | USE_ALL_TRUES_MASK_P));
+}
+
template <int MAX_OPERANDS> class insn_expander
{
public:
insn_expander () = delete;
- insn_expander (unsigned insn_flags, bool vlmax_p, machine_mode dest_mode,
- machine_mode mask_mode)
+ insn_expander (unsigned insn_flags, bool vlmax_p)
: m_insn_flags (insn_flags), m_opno (0), m_vlmax_p (vlmax_p),
- m_dest_mode (dest_mode), m_mask_mode (mask_mode), m_vl_op (NULL_RTX)
+ m_vl_op (NULL_RTX)
{
check_insn_flags ();
}
@@ -138,13 +149,17 @@ public:
create_input_operand (&m_ops[m_opno++], x, mode);
gcc_assert (m_opno <= MAX_OPERANDS);
}
- void add_all_one_mask_operand ()
+ void add_all_one_mask_operand (machine_mode mask_mode)
{
- add_input_operand (CONSTM1_RTX (m_mask_mode), m_mask_mode);
+ add_input_operand (CONSTM1_RTX (mask_mode), mask_mode);
}
- void add_vundef_operand ()
+ void add_first_one_true_mask_operand (machine_mode mask_mode)
{
- add_input_operand (RVV_VUNDEF (m_dest_mode), m_dest_mode);
+ add_input_operand (gen_scalar_move_mask (mask_mode), mask_mode);
+ }
+ void add_vundef_operand (machine_mode dest_mode)
+ {
+ add_input_operand (RVV_VUNDEF (dest_mode), dest_mode);
}
void add_policy_operand ()
{
@@ -182,9 +197,17 @@ public:
add_input_operand (frm_rtx, Pmode);
}
- void add_oprand (rtx *ops, int opno)
+ /* Return the vtype mode based on insn_flags.
+ vtype mode mean the mode vsetvl insn set. */
+ machine_mode
+ get_vtype_mode (rtx *ops)
{
-
+ machine_mode vtype_mode;
+ if (m_insn_flags & VTYPE_MODE_FROM_OP1_P)
+ vtype_mode = GET_MODE (ops[1]);
+ else
+ vtype_mode = GET_MODE (ops[0]);
+ return vtype_mode;
}
void emit_insn (enum insn_code icode, rtx *ops)
@@ -194,18 +217,22 @@ public:
/* It's true if any operand is memory operand. */
bool any_mem_p = false;
+ machine_mode vtype_mode = get_vtype_mode (ops);
+ machine_mode mask_mode = get_mask_mode (vtype_mode);
+
/* Add dest operand. */
if (m_insn_flags & HAS_DEST_P)
{
- any_mem_p |= MEM_P (ops[opno]);
- add_output_operand (ops[opno++], m_dest_mode);
+ rtx op = ops[opno++];
+ any_mem_p |= MEM_P (op);
+ add_output_operand (op, GET_MODE (op));
}
/* Add mask operand. */
if (m_insn_flags & USE_ONE_TRUE_MASK_P)
- add_input_operand (gen_scalar_move_mask (m_mask_mode), m_mask_mode);
+ add_first_one_true_mask_operand (mask_mode);
else if (m_insn_flags & USE_ALL_TRUES_MASK_P)
- add_all_one_mask_operand ();
+ add_all_one_mask_operand (mask_mode);
else if (m_insn_flags & HAS_MASK_P)
{
machine_mode mode = insn_data[(int) icode].operand[m_opno].mode;
@@ -215,7 +242,8 @@ public:
/* Add merge operand. */
if (m_insn_flags & USE_VUNDEF_MERGE_P)
- add_vundef_operand ();
+ /* Same as dest operand. */
+ add_vundef_operand (GET_MODE (ops[0]));
else if (m_insn_flags & HAS_MERGE_P)
{
machine_mode mode = insn_data[(int) icode].operand[m_opno].mode;
@@ -256,31 +284,30 @@ public:
/* Add vl operand. */
rtx len = m_vl_op;
- machine_mode mode = VECTOR_MODE_P (m_dest_mode) ? m_dest_mode : m_mask_mode;
if (m_vlmax_p)
{
- if (riscv_v_ext_vls_mode_p (mode))
+ if (riscv_v_ext_vls_mode_p (vtype_mode))
{
/* VLS modes always set VSETVL by
"vsetvl zero, rs1/imm". */
- poly_uint64 nunits = GET_MODE_NUNITS (mode);
+ poly_uint64 nunits = GET_MODE_NUNITS (vtype_mode);
len = gen_int_mode (nunits, Pmode);
if (!satisfies_constraint_K (len))
len = force_reg (Pmode, len);
m_vlmax_p = false;
}
- else if (const_vlmax_p (mode))
+ else if (const_vlmax_p (vtype_mode))
{
/* Optimize VLS-VLMAX code gen, we can use vsetivli instead of
the vsetvli to obtain the value of vlmax. */
- poly_uint64 nunits = GET_MODE_NUNITS (mode);
+ poly_uint64 nunits = GET_MODE_NUNITS (vtype_mode);
len = gen_int_mode (nunits, Pmode);
m_vlmax_p = false;
}
else if (can_create_pseudo_p ())
{
len = gen_reg_rtx (Pmode);
- emit_vlmax_vsetvl (mode, len);
+ emit_vlmax_vsetvl (vtype_mode, len);
}
}
@@ -313,38 +340,20 @@ public:
}
private:
- int m_insn_flags;
+ unsigned m_insn_flags;
int m_opno;
bool m_vlmax_p;
- machine_mode m_dest_mode;
- machine_mode m_mask_mode;
rtx m_vl_op;
expand_operand m_ops[MAX_OPERANDS];
};
-/* Return the mask mode based on insn_flags */
-static machine_mode
-get_mask_mode_from_insn_flags (unsigned insn_flags, rtx *ops)
-{
- machine_mode mask_mode;
- if (insn_flags & MASK_MODE_FROM_OP1_P)
- mask_mode = get_mask_mode (GET_MODE (ops[1]));
- else
- mask_mode = get_mask_mode (GET_MODE (ops[0]));
- return mask_mode;
-}
-
/* Emit RVV insn which vl is VLMAX.
This function can only be used before LRA pass or
for VLS_AVL_IMM modes. */
void
emit_vlmax_insn (unsigned icode, unsigned insn_flags, rtx *ops)
{
- machine_mode dest_mode = GET_MODE (ops[0]);
- machine_mode mask_mode = get_mask_mode_from_insn_flags (insn_flags, ops);
-
- insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, true, dest_mode,
- mask_mode);
+ insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, true);
e.emit_insn ((enum insn_code) icode, ops);
}
@@ -352,10 +361,7 @@ emit_vlmax_insn (unsigned icode, unsigned insn_flags, rtx *ops)
void
emit_nonvlmax_insn (unsigned icode, unsigned insn_flags, rtx *ops, rtx vl)
{
- machine_mode dest_mode = GET_MODE (ops[0]);
- machine_mode mask_mode = get_mask_mode_from_insn_flags (insn_flags, ops);
- insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, false, dest_mode,
- mask_mode);
+ insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, false);
e.set_vl (vl);
e.emit_insn ((enum insn_code) icode, ops);
}
@@ -367,10 +373,7 @@ emit_vlmax_insn_lra (unsigned icode, unsigned insn_flags, rtx *ops, rtx vl)
{
gcc_assert (!can_create_pseudo_p ());
- machine_mode dest_mode = GET_MODE (ops[0]);
- machine_mode mask_mode = get_mask_mode_from_insn_flags (insn_flags, ops);
- insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, true, dest_mode,
- mask_mode);
+ insn_expander<RVV_INSN_OPERANDS_MAX> e (insn_flags, true);
e.set_vl (vl);
e.emit_insn ((enum insn_code) icode, ops);
}
@@ -2970,7 +2973,9 @@ needs_fp_rounding (unsigned icode, machine_mode mode)
&& icode != maybe_code_for_pred_extend (mode)
/* narrower-INT -> FP */
&& icode != maybe_code_for_pred_widen (FLOAT, mode)
- && icode != maybe_code_for_pred_widen (UNSIGNED_FLOAT, mode);
+ && icode != maybe_code_for_pred_widen (UNSIGNED_FLOAT, mode)
+ /* vfsgnj */
+ && icode != maybe_code_for_pred (UNSPEC_VCOPYSIGN, mode);
}
/* Subroutine to expand COND_LEN_* patterns. */
@@ -3204,48 +3209,38 @@ expand_cond_len_ternop (unsigned icode, rtx *ops)
expand_cond_len_op (icode, TERNARY_OP_P, cond_ops, len);
}
-/* Expand reduction operations. */
+/* Expand reduction operations.
+ Case 1: ops = {scalar_dest, vector_src}
+ Case 2: ops = {scalar_dest, vector_src, mask, vl}
+*/
void
-expand_reduction (rtx_code code, rtx *ops, rtx init, reduction_type type)
+expand_reduction (unsigned unspec, unsigned insn_flags, rtx *ops, rtx init)
{
- rtx vector = type == reduction_type::UNORDERED ? ops[1] : ops[2];
- machine_mode vmode = GET_MODE (vector);
- machine_mode m1_mode = get_m1_mode (vmode).require ();
+ rtx scalar_dest = ops[0];
+ rtx vector_src = ops[1];
+ machine_mode vmode = GET_MODE (vector_src);
+ machine_mode vel_mode = GET_MODE (scalar_dest);
+ machine_mode m1_mode = get_m1_mode (vel_mode).require ();
rtx m1_tmp = gen_reg_rtx (m1_mode);
rtx scalar_move_ops[] = {m1_tmp, init};
emit_nonvlmax_insn (code_for_pred_broadcast (m1_mode), SCALAR_MOVE_OP,
- scalar_move_ops,
- type == reduction_type::MASK_LEN_FOLD_LEFT
- ? ops[4]
- : CONST1_RTX (Pmode));
+ scalar_move_ops,
+ need_mask_operand_p (insn_flags) ? ops[3]
+ : CONST1_RTX (Pmode));
rtx m1_tmp2 = gen_reg_rtx (m1_mode);
- rtx reduc_ops[] = {m1_tmp2, vector, m1_tmp};
+ rtx reduc_ops[] = {m1_tmp2, vector_src, m1_tmp};
+ insn_code icode = code_for_pred (unspec, vmode);
- if (FLOAT_MODE_P (vmode) && code == PLUS)
+ if (need_mask_operand_p (insn_flags))
{
- insn_code icode
- = code_for_pred_reduc_plus (type == reduction_type::UNORDERED
- ? UNSPEC_UNORDERED
- : UNSPEC_ORDERED,
- vmode, m1_mode);
- if (type == reduction_type::MASK_LEN_FOLD_LEFT)
- {
- rtx mask = ops[3];
- rtx mask_len_reduc_ops[] = {m1_tmp2, mask, vector, m1_tmp};
- emit_nonvlmax_insn (icode, REDUCE_OP_M_FRM_DYN, mask_len_reduc_ops,
- ops[4]);
- }
- else
- emit_vlmax_insn (icode, REDUCE_OP_FRM_DYN, reduc_ops);
+ rtx mask_len_reduc_ops[] = {m1_tmp2, ops[2], vector_src, m1_tmp};
+ emit_nonvlmax_insn (icode, insn_flags, mask_len_reduc_ops, ops[3]);
}
else
- {
- insn_code icode = code_for_pred_reduc (code, vmode, m1_mode);
- emit_vlmax_insn (icode, REDUCE_OP, reduc_ops);
- }
+ emit_vlmax_insn (icode, insn_flags, reduc_ops);
- emit_insn (gen_pred_extract_first (m1_mode, ops[0], m1_tmp2));
+ emit_insn (gen_pred_extract_first (m1_mode, scalar_dest, m1_tmp2));
}
/* Prepare ops for ternary operations.
diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.cc b/gcc/config/riscv/riscv-vector-builtins-bases.cc
index 8e679f7..ab12e13 100644
--- a/gcc/config/riscv/riscv-vector-builtins-bases.cc
+++ b/gcc/config/riscv/riscv-vector-builtins-bases.cc
@@ -1533,7 +1533,7 @@ public:
};
/* Implements reduction instructions. */
-template<rtx_code CODE>
+template<unsigned UNSPEC>
class reducop : public function_base
{
public:
@@ -1541,28 +1541,12 @@ public:
rtx expand (function_expander &e) const override
{
- return e.use_exact_insn (
- code_for_pred_reduc (CODE, e.vector_mode (), e.ret_mode ()));
- }
-};
-
-/* Implements widen reduction instructions. */
-template<int UNSPEC>
-class widen_reducop : public function_base
-{
-public:
- bool apply_mask_policy_p () const override { return false; }
-
- rtx expand (function_expander &e) const override
- {
- return e.use_exact_insn (code_for_pred_widen_reduc_plus (UNSPEC,
- e.vector_mode (),
- e.ret_mode ()));
+ return e.use_exact_insn (code_for_pred (UNSPEC, e.vector_mode ()));
}
};
/* Implements floating-point reduction instructions. */
-template<int UNSPEC, enum frm_op_type FRM_OP = NO_FRM >
+template<unsigned UNSPEC, enum frm_op_type FRM_OP = NO_FRM>
class freducop : public function_base
{
public:
@@ -1575,28 +1559,7 @@ public:
rtx expand (function_expander &e) const override
{
- return e.use_exact_insn (
- code_for_pred_reduc_plus (UNSPEC, e.vector_mode (), e.ret_mode ()));
- }
-};
-
-/* Implements widening floating-point reduction instructions. */
-template<int UNSPEC, enum frm_op_type FRM_OP = NO_FRM>
-class widen_freducop : public function_base
-{
-public:
- bool has_rounding_mode_operand_p () const override
- {
- return FRM_OP == HAS_FRM;
- }
-
- bool apply_mask_policy_p () const override { return false; }
-
- rtx expand (function_expander &e) const override
- {
- return e.use_exact_insn (code_for_pred_widen_reduc_plus (UNSPEC,
- e.vector_mode (),
- e.ret_mode ()));
+ return e.use_exact_insn (code_for_pred (UNSPEC, e.vector_mode ()));
}
};
@@ -1824,6 +1787,44 @@ public:
}
};
+class vcreate : public function_base
+{
+public:
+ gimple *fold (gimple_folder &f) const override
+ {
+ unsigned int nargs = gimple_call_num_args (f.call);
+ tree lhs_type = TREE_TYPE (f.lhs);
+
+ /* Replace the call with a clobber of the result (to prevent it from
+ becoming upwards exposed) followed by stores into each individual
+ vector of tuple.
+
+ The fold routines expect the replacement statement to have the
+ same lhs as the original call, so return the clobber statement
+ rather than the final vector store. */
+ gassign *clobber = gimple_build_assign (f.lhs, build_clobber (lhs_type));
+
+ for (unsigned int i = nargs; i-- > 0; )
+ {
+ tree rhs_vector = gimple_call_arg (f.call, i);
+ tree field = tuple_type_field (TREE_TYPE (f.lhs));
+ tree lhs_array = build3 (COMPONENT_REF, TREE_TYPE (field),
+ unshare_expr (f.lhs), field, NULL_TREE);
+ tree lhs_vector = build4 (ARRAY_REF, TREE_TYPE (rhs_vector),
+ lhs_array, size_int (i),
+ NULL_TREE, NULL_TREE);
+ gassign *assign = gimple_build_assign (lhs_vector, rhs_vector);
+ gsi_insert_after (f.gsi, assign, GSI_SAME_STMT);
+ }
+ return clobber;
+ }
+
+ rtx expand (function_expander &) const override
+ {
+ gcc_unreachable ();
+ }
+};
+
class read_vl : public function_base
{
public:
@@ -2246,26 +2247,26 @@ static CONSTEXPR const vfncvt_rtz_x<UNSIGNED_FIX> vfncvt_rtz_xu_obj;
static CONSTEXPR const vfncvt_f<NO_FRM> vfncvt_f_obj;
static CONSTEXPR const vfncvt_f<HAS_FRM> vfncvt_f_frm_obj;
static CONSTEXPR const vfncvt_rod_f vfncvt_rod_f_obj;
-static CONSTEXPR const reducop<PLUS> vredsum_obj;
-static CONSTEXPR const reducop<UMAX> vredmaxu_obj;
-static CONSTEXPR const reducop<SMAX> vredmax_obj;
-static CONSTEXPR const reducop<UMIN> vredminu_obj;
-static CONSTEXPR const reducop<SMIN> vredmin_obj;
-static CONSTEXPR const reducop<AND> vredand_obj;
-static CONSTEXPR const reducop<IOR> vredor_obj;
-static CONSTEXPR const reducop<XOR> vredxor_obj;
-static CONSTEXPR const widen_reducop<UNSPEC_WREDUC_SUM> vwredsum_obj;
-static CONSTEXPR const widen_reducop<UNSPEC_WREDUC_USUM> vwredsumu_obj;
-static CONSTEXPR const freducop<UNSPEC_UNORDERED> vfredusum_obj;
-static CONSTEXPR const freducop<UNSPEC_UNORDERED, HAS_FRM> vfredusum_frm_obj;
-static CONSTEXPR const freducop<UNSPEC_ORDERED> vfredosum_obj;
-static CONSTEXPR const freducop<UNSPEC_ORDERED, HAS_FRM> vfredosum_frm_obj;
-static CONSTEXPR const reducop<SMAX> vfredmax_obj;
-static CONSTEXPR const reducop<SMIN> vfredmin_obj;
-static CONSTEXPR const widen_freducop<UNSPEC_UNORDERED> vfwredusum_obj;
-static CONSTEXPR const widen_freducop<UNSPEC_UNORDERED, HAS_FRM> vfwredusum_frm_obj;
-static CONSTEXPR const widen_freducop<UNSPEC_ORDERED> vfwredosum_obj;
-static CONSTEXPR const widen_freducop<UNSPEC_ORDERED, HAS_FRM> vfwredosum_frm_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_SUM> vredsum_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MAXU> vredmaxu_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MAX> vredmax_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MINU> vredminu_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MIN> vredmin_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_AND> vredand_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_OR> vredor_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_XOR> vredxor_obj;
+static CONSTEXPR const reducop<UNSPEC_WREDUC_SUM> vwredsum_obj;
+static CONSTEXPR const reducop<UNSPEC_WREDUC_SUMU> vwredsumu_obj;
+static CONSTEXPR const freducop<UNSPEC_REDUC_SUM_UNORDERED> vfredusum_obj;
+static CONSTEXPR const freducop<UNSPEC_REDUC_SUM_UNORDERED, HAS_FRM> vfredusum_frm_obj;
+static CONSTEXPR const freducop<UNSPEC_REDUC_SUM_ORDERED> vfredosum_obj;
+static CONSTEXPR const freducop<UNSPEC_REDUC_SUM_ORDERED, HAS_FRM> vfredosum_frm_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MAX> vfredmax_obj;
+static CONSTEXPR const reducop<UNSPEC_REDUC_MIN> vfredmin_obj;
+static CONSTEXPR const freducop<UNSPEC_WREDUC_SUM_UNORDERED> vfwredusum_obj;
+static CONSTEXPR const freducop<UNSPEC_WREDUC_SUM_UNORDERED, HAS_FRM> vfwredusum_frm_obj;
+static CONSTEXPR const freducop<UNSPEC_WREDUC_SUM_ORDERED> vfwredosum_obj;
+static CONSTEXPR const freducop<UNSPEC_WREDUC_SUM_ORDERED, HAS_FRM> vfwredosum_frm_obj;
static CONSTEXPR const vmv vmv_x_obj;
static CONSTEXPR const vmv_s vmv_s_obj;
static CONSTEXPR const vmv vfmv_f_obj;
@@ -2285,6 +2286,7 @@ static CONSTEXPR const vlmul_ext vlmul_ext_obj;
static CONSTEXPR const vlmul_trunc vlmul_trunc_obj;
static CONSTEXPR const vset vset_obj;
static CONSTEXPR const vget vget_obj;
+static CONSTEXPR const vcreate vcreate_obj;
static CONSTEXPR const read_vl read_vl_obj;
static CONSTEXPR const vleff vleff_obj;
static CONSTEXPR const vlenb vlenb_obj;
@@ -2546,6 +2548,7 @@ BASE (vlmul_ext)
BASE (vlmul_trunc)
BASE (vset)
BASE (vget)
+BASE (vcreate)
BASE (read_vl)
BASE (vleff)
BASE (vlenb)
diff --git a/gcc/config/riscv/riscv-vector-builtins-bases.h b/gcc/config/riscv/riscv-vector-builtins-bases.h
index 69d4562..131041e 100644
--- a/gcc/config/riscv/riscv-vector-builtins-bases.h
+++ b/gcc/config/riscv/riscv-vector-builtins-bases.h
@@ -267,6 +267,7 @@ extern const function_base *const vlmul_ext;
extern const function_base *const vlmul_trunc;
extern const function_base *const vset;
extern const function_base *const vget;
+extern const function_base *const vcreate;
extern const function_base *const read_vl;
extern const function_base *const vleff;
extern const function_base *const vlenb;
diff --git a/gcc/config/riscv/riscv-vector-builtins-functions.def b/gcc/config/riscv/riscv-vector-builtins-functions.def
index 3ce06dc..18ed2c2 100644
--- a/gcc/config/riscv/riscv-vector-builtins-functions.def
+++ b/gcc/config/riscv/riscv-vector-builtins-functions.def
@@ -621,6 +621,7 @@ DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_lmul4_x2_ops)
// Tuple types
DEF_RVV_FUNCTION (vset, vset, none_preds, all_v_vset_tuple_ops)
DEF_RVV_FUNCTION (vget, vget, none_preds, all_v_vget_tuple_ops)
+DEF_RVV_FUNCTION (vcreate, vcreate, none_preds, all_v_vcreate_tuple_ops)
DEF_RVV_FUNCTION (vlseg, seg_loadstore, full_preds, tuple_v_scalar_const_ptr_ops)
DEF_RVV_FUNCTION (vsseg, seg_loadstore, none_m_preds, tuple_v_scalar_ptr_ops)
DEF_RVV_FUNCTION (vlsseg, seg_loadstore, full_preds, tuple_v_scalar_const_ptr_ptrdiff_ops)
diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.cc b/gcc/config/riscv/riscv-vector-builtins-shapes.cc
index f8fdec8..0bda934 100644
--- a/gcc/config/riscv/riscv-vector-builtins-shapes.cc
+++ b/gcc/config/riscv/riscv-vector-builtins-shapes.cc
@@ -706,6 +706,55 @@ struct vget_def : public misc_def
}
};
+/* vcreate_def class. */
+struct vcreate_def : public build_base
+{
+ void build (function_builder &b,
+ const function_group_info &group) const override
+ {
+ for (unsigned int vec_type_idx = 0;
+ group.ops_infos.types[vec_type_idx].index != NUM_VECTOR_TYPES;
+ ++vec_type_idx)
+ {
+ auto_vec<tree, 8> argument_types;
+ function_instance function_instance (group.base_name, *group.base,
+ *group.shape,
+ group.ops_infos.types[vec_type_idx],
+ group.preds[0], &group.ops_infos);
+
+ tree return_type = group.ops_infos.ret.get_tree_type (
+ group.ops_infos.types[vec_type_idx].index);
+
+ if (!return_type)
+ continue;
+
+ machine_mode mode = TYPE_MODE (return_type);
+ unsigned int nf = get_nf (mode);
+
+ for (unsigned int i = 0; i < nf; i++)
+ argument_types.quick_push (
+ function_instance.op_info->args[0].get_tree_type (
+ function_instance.type.index));
+
+ b.add_unique_function (function_instance, (*group.shape), return_type,
+ argument_types);
+ }
+ }
+
+ char *get_name (function_builder &b, const function_instance &instance,
+ bool overloaded_p) const override
+ {
+ if (overloaded_p)
+ return nullptr;
+ b.append_base_name (instance.base_name);
+ b.append_name (operand_suffixes[instance.op_info->op]);
+ vector_type_index ret_type_idx
+ = instance.op_info->ret.get_function_type_index (instance.type.index);
+ b.append_name (type_suffixes[ret_type_idx].vector);
+ return b.finish_name ();
+ }
+};
+
/* read_vl_def class. */
struct read_vl_def : public function_shape
{
@@ -942,6 +991,7 @@ SHAPE(vundefined, vundefined)
SHAPE(misc, misc)
SHAPE(vset, vset)
SHAPE(vget, vget)
+SHAPE(vcreate, vcreate)
SHAPE(read_vl, read_vl)
SHAPE(fault_load, fault_load)
SHAPE(vlenb, vlenb)
diff --git a/gcc/config/riscv/riscv-vector-builtins-shapes.h b/gcc/config/riscv/riscv-vector-builtins-shapes.h
index 92eb8bc..df9884b 100644
--- a/gcc/config/riscv/riscv-vector-builtins-shapes.h
+++ b/gcc/config/riscv/riscv-vector-builtins-shapes.h
@@ -45,6 +45,7 @@ extern const function_shape *const vundefined;
extern const function_shape *const misc;
extern const function_shape *const vset;
extern const function_shape *const vget;
+extern const function_shape *const vcreate;
extern const function_shape *const read_vl;
extern const function_shape *const fault_load;
extern const function_shape *const vlenb;
diff --git a/gcc/config/riscv/riscv-vector-builtins.cc b/gcc/config/riscv/riscv-vector-builtins.cc
index 6d99f97..5318651 100644
--- a/gcc/config/riscv/riscv-vector-builtins.cc
+++ b/gcc/config/riscv/riscv-vector-builtins.cc
@@ -873,6 +873,10 @@ static CONSTEXPR const rvv_arg_type_info tuple_vset_args[]
= {rvv_arg_type_info (RVV_BASE_vector), rvv_arg_type_info (RVV_BASE_size),
rvv_arg_type_info (RVV_BASE_tuple_subpart), rvv_arg_type_info_end};
+/* A list of args for vector_type func (vector_type) function. */
+static CONSTEXPR const rvv_arg_type_info tuple_vcreate_args[]
+ = {rvv_arg_type_info (RVV_BASE_tuple_subpart), rvv_arg_type_info_end};
+
/* A list of none preds that will be registered for intrinsic functions. */
static CONSTEXPR const predication_type_index none_preds[]
= {PRED_TYPE_none, NUM_PRED_TYPES};
@@ -2497,6 +2501,14 @@ static CONSTEXPR const rvv_op_info tuple_v_scalar_const_ptr_size_ptr_ops
rvv_arg_type_info (RVV_BASE_vector), /* Return type */
scalar_const_ptr_size_ptr_args /* Args */};
+/* A static operand information for vector_type func (vector_type)
+ * function registration. */
+static CONSTEXPR const rvv_op_info all_v_vcreate_tuple_ops
+ = {tuple_ops, /* Types */
+ OP_TYPE_v, /* Suffix */
+ rvv_arg_type_info (RVV_BASE_vector), /* Return type */
+ tuple_vcreate_args /* Args */};
+
/* A list of all RVV base function types. */
static CONSTEXPR const function_type_info function_types[] = {
#define DEF_RVV_TYPE_INDEX( \
diff --git a/gcc/config/riscv/riscv-vector-costs.cc b/gcc/config/riscv/riscv-vector-costs.cc
index 1a5e13d..878f72c 100644
--- a/gcc/config/riscv/riscv-vector-costs.cc
+++ b/gcc/config/riscv/riscv-vector-costs.cc
@@ -36,16 +36,525 @@ along with GCC; see the file COPYING3. If not see
#include "fold-const.h"
#include "tm_p.h"
#include "tree-vectorizer.h"
+#include "gimple-iterator.h"
+#include "bitmap.h"
+#include "ssa.h"
+#include "backend.h"
/* This file should be included last. */
#include "riscv-vector-costs.h"
namespace riscv_vector {
+/* Dynamic LMUL philosophy - Local linear-scan SSA live range based analysis
+ determine LMUL
+
+ - Collect all vectorize STMTs locally for each loop block.
+ - Build program point based graph, ignore non-vectorize STMTs:
+
+ vectorize STMT 0 - point 0
+ scalar STMT 0 - ignore.
+ vectorize STMT 1 - point 1
+ ...
+ - Compute the number of live V_REGs live at each program point
+ - Determine LMUL in VECTOR COST model according to the program point
+ which has maximum live V_REGs.
+
+ Note:
+
+ - BIGGEST_MODE is the biggest LMUL auto-vectorization element mode.
+ It's important for mixed size auto-vectorization (Conversions, ... etc).
+ E.g. For a loop that is vectorizing conversion of INT32 -> INT64.
+ The biggest mode is DImode and LMUL = 8, LMUL = 4 for SImode.
+ We compute the number live V_REGs at each program point according to
+ this information.
+ - We only compute program points and live ranges locally (within a block)
+ since we just need to compute the number of live V_REGs at each program
+ point and we are not really allocating the registers for each SSA.
+ We can make the variable has another local live range in another block
+ if it live out/live in to another block. Such approach doesn't affect
+ out accurate live range analysis.
+ - Current analysis didn't consider any instruction scheduling which
+ may improve the register pressure. So we are conservatively doing the
+ analysis which may end up with smaller LMUL.
+ TODO: Maybe we could support a reasonable live range shrink algorithm
+ which take advantage of instruction scheduling.
+ - We may have these following possible autovec modes analysis:
+
+ 1. M8 -> M4 -> M2 -> M1 (stop analysis here) -> MF2 -> MF4 -> MF8
+ 2. M8 -> M1(M4) -> MF2(M2) -> MF4(M1) (stop analysis here) -> MF8(MF2)
+ 3. M1(M8) -> MF2(M4) -> MF4(M2) -> MF8(M1)
+*/
+static hash_map<class loop *, autovec_info> loop_autovec_infos;
+
+/* Collect all STMTs that are vectorized and compute their program points.
+ Note that we don't care about the STMTs that are not vectorized and
+ we only build the local graph (within a block) of program points.
+
+ Loop:
+ bb 2:
+ STMT 1 (be vectorized) -- point 0
+ STMT 2 (not be vectorized) -- ignored
+ STMT 3 (be vectorized) -- point 1
+ STMT 4 (be vectorized) -- point 2
+ STMT 5 (be vectorized) -- point 3
+ ...
+ bb 3:
+ STMT 1 (be vectorized) -- point 0
+ STMT 2 (be vectorized) -- point 1
+ STMT 3 (not be vectorized) -- ignored
+ STMT 4 (not be vectorized) -- ignored
+ STMT 5 (be vectorized) -- point 2
+ ...
+*/
+static void
+compute_local_program_points (
+ vec_info *vinfo,
+ hash_map<basic_block, vec<stmt_point>> &program_points_per_bb)
+{
+ if (loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (vinfo))
+ {
+ class loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ unsigned int nbbs = loop->num_nodes;
+ gimple_stmt_iterator si;
+ unsigned int i;
+ /* Collect the stmts that is vectorized and mark their program point. */
+ for (i = 0; i < nbbs; i++)
+ {
+ int point = 0;
+ basic_block bb = bbs[i];
+ vec<stmt_point> program_points = vNULL;
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Compute local program points for bb %d:\n",
+ bb->index);
+ for (si = gsi_start_bb (bbs[i]); !gsi_end_p (si); gsi_next (&si))
+ {
+ if (!(is_gimple_assign (gsi_stmt (si))
+ || is_gimple_call (gsi_stmt (si))))
+ continue;
+ stmt_vec_info stmt_info = vinfo->lookup_stmt (gsi_stmt (si));
+ if (STMT_VINFO_TYPE (vect_stmt_to_vectorize (stmt_info))
+ != undef_vec_info_type)
+ {
+ stmt_point info = {point, gsi_stmt (si)};
+ program_points.safe_push (info);
+ point++;
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "program point %d: %G", info.point,
+ gsi_stmt (si));
+ }
+ }
+ program_points_per_bb.put (bb, program_points);
+ }
+ }
+}
+
+/* Compute local live ranges of each vectorized variable.
+ Note that we only compute local live ranges (within a block) since
+ local live ranges information is accurate enough for us to determine
+ the LMUL/vectorization factor of the loop.
+
+ Loop:
+ bb 2:
+ STMT 1 -- point 0
+ STMT 2 (def SSA 1) -- point 1
+ STMT 3 (use SSA 1) -- point 2
+ STMT 4 -- point 3
+ bb 3:
+ STMT 1 -- point 0
+ STMT 2 -- point 1
+ STMT 3 -- point 2
+ STMT 4 (use SSA 2) -- point 3
+
+ The live range of SSA 1 is [1, 3] in bb 2.
+ The live range of SSA 2 is [0, 4] in bb 3. */
+static machine_mode
+compute_local_live_ranges (
+ const hash_map<basic_block, vec<stmt_point>> &program_points_per_bb,
+ hash_map<basic_block, hash_map<tree, pair>> &live_ranges_per_bb)
+{
+ machine_mode biggest_mode = QImode;
+ if (!program_points_per_bb.is_empty ())
+ {
+ auto_vec<tree> visited_vars;
+ unsigned int i;
+ for (hash_map<basic_block, vec<stmt_point>>::iterator iter
+ = program_points_per_bb.begin ();
+ iter != program_points_per_bb.end (); ++iter)
+ {
+ basic_block bb = (*iter).first;
+ vec<stmt_point> program_points = (*iter).second;
+ bool existed_p = false;
+ hash_map<tree, pair> *live_ranges
+ = &live_ranges_per_bb.get_or_insert (bb, &existed_p);
+ gcc_assert (!existed_p);
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Compute local live ranges for bb %d:\n",
+ bb->index);
+ for (const auto program_point : program_points)
+ {
+ unsigned int point = program_point.point;
+ gimple *stmt = program_point.stmt;
+ machine_mode mode = biggest_mode;
+ tree lhs = gimple_get_lhs (stmt);
+ if (lhs != NULL_TREE && is_gimple_reg (lhs)
+ && !POINTER_TYPE_P (TREE_TYPE (lhs)))
+ {
+ mode = TYPE_MODE (TREE_TYPE (lhs));
+ bool existed_p = false;
+ pair &live_range
+ = live_ranges->get_or_insert (lhs, &existed_p);
+ gcc_assert (!existed_p);
+ live_range = pair (point, point);
+ }
+ for (i = 0; i < gimple_num_args (stmt); i++)
+ {
+ tree var = gimple_arg (stmt, i);
+ /* Both IMM and REG are included since a VECTOR_CST may be
+ potentially held in a vector register. However, it's not
+ accurate, since a PLUS_EXPR can be vectorized into vadd.vi
+ if IMM is -16 ~ 15.
+
+ TODO: We may elide the cases that the unnecessary IMM in
+ the future. */
+ if (is_gimple_val (var) && !POINTER_TYPE_P (TREE_TYPE (var)))
+ {
+ mode = TYPE_MODE (TREE_TYPE (var));
+ bool existed_p = false;
+ pair &live_range
+ = live_ranges->get_or_insert (var, &existed_p);
+ if (existed_p)
+ /* We will grow the live range for each use. */
+ live_range = pair (live_range.first, point);
+ else
+ /* We assume the variable is live from the start of
+ this block. */
+ live_range = pair (0, point);
+ }
+ }
+ if (GET_MODE_SIZE (mode).to_constant ()
+ > GET_MODE_SIZE (biggest_mode).to_constant ())
+ biggest_mode = mode;
+ }
+ if (dump_enabled_p ())
+ for (hash_map<tree, pair>::iterator iter = live_ranges->begin ();
+ iter != live_ranges->end (); ++iter)
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "%T: type = %T, start = %d, end = %d\n",
+ (*iter).first, TREE_TYPE ((*iter).first),
+ (*iter).second.first, (*iter).second.second);
+ }
+ }
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location, "Biggest mode = %s\n",
+ GET_MODE_NAME (biggest_mode));
+ return biggest_mode;
+}
+
+/* Compute the mode for MODE, BIGGEST_MODE and LMUL.
+
+ E.g. If mode = SImode, biggest_mode = DImode, LMUL = M4.
+ Then return RVVM4SImode (LMUL = 4, element mode = SImode). */
+static unsigned int
+compute_nregs_for_mode (machine_mode mode, machine_mode biggest_mode, int lmul)
+{
+ unsigned int mode_size = GET_MODE_SIZE (mode).to_constant ();
+ unsigned int biggest_size = GET_MODE_SIZE (biggest_mode).to_constant ();
+ gcc_assert (biggest_size >= mode_size);
+ unsigned int ratio = biggest_size / mode_size;
+ return lmul / ratio;
+}
+
+/* This function helps to determine whether current LMUL will cause
+ potential vector register (V_REG) spillings according to live range
+ information.
+
+ - First, compute how many variable are alive of each program point
+ in each bb of the loop.
+ - Second, compute how many V_REGs are alive of each program point
+ in each bb of the loop according the BIGGEST_MODE and the variable
+ mode.
+ - Third, Return the maximum V_REGs are alive of the loop. */
+static unsigned int
+max_number_of_live_regs (const basic_block bb,
+ const hash_map<tree, pair> &live_ranges,
+ unsigned int max_point, machine_mode biggest_mode,
+ int lmul)
+{
+ unsigned int max_nregs = 0;
+ unsigned int i;
+ unsigned int live_point = 0;
+ auto_vec<unsigned int> live_vars_vec;
+ live_vars_vec.safe_grow (max_point + 1, true);
+ for (i = 0; i < live_vars_vec.length (); ++i)
+ live_vars_vec[i] = 0;
+ for (hash_map<tree, pair>::iterator iter = live_ranges.begin ();
+ iter != live_ranges.end (); ++iter)
+ {
+ tree var = (*iter).first;
+ pair live_range = (*iter).second;
+ for (i = live_range.first; i <= live_range.second; i++)
+ {
+ machine_mode mode = TYPE_MODE (TREE_TYPE (var));
+ unsigned int nregs
+ = compute_nregs_for_mode (mode, biggest_mode, lmul);
+ live_vars_vec[i] += nregs;
+ if (live_vars_vec[i] > max_nregs)
+ max_nregs = live_vars_vec[i];
+ }
+ }
+
+ /* Collect user explicit RVV type. */
+ auto_vec<basic_block> all_preds
+ = get_all_dominated_blocks (CDI_POST_DOMINATORS, bb);
+ tree t;
+ FOR_EACH_SSA_NAME (i, t, cfun)
+ {
+ machine_mode mode = TYPE_MODE (TREE_TYPE (t));
+ if (!lookup_vector_type_attribute (TREE_TYPE (t))
+ && !riscv_v_ext_vls_mode_p (mode))
+ continue;
+
+ gimple *def = SSA_NAME_DEF_STMT (t);
+ if (gimple_bb (def) && !all_preds.contains (gimple_bb (def)))
+ continue;
+ use_operand_p use_p;
+ imm_use_iterator iterator;
+
+ FOR_EACH_IMM_USE_FAST (use_p, iterator, t)
+ {
+ if (!USE_STMT (use_p) || is_gimple_debug (USE_STMT (use_p))
+ || !dominated_by_p (CDI_POST_DOMINATORS, bb,
+ gimple_bb (USE_STMT (use_p))))
+ continue;
+
+ int regno_alignment = riscv_get_v_regno_alignment (mode);
+ max_nregs += regno_alignment;
+ if (dump_enabled_p ())
+ dump_printf_loc (
+ MSG_NOTE, vect_location,
+ "Explicit used SSA %T, vectype = %T, mode = %s, cause %d "
+ "V_REG live in bb %d at program point %d\n",
+ t, TREE_TYPE (t), GET_MODE_NAME (mode), regno_alignment,
+ bb->index, live_point);
+ break;
+ }
+ }
+
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Maximum lmul = %d, %d number of live V_REG at program "
+ "point %d for bb %d\n",
+ lmul, max_nregs, live_point, bb->index);
+ return max_nregs;
+}
+
+/* Return the LMUL of the current analysis. */
+static int
+get_current_lmul (class loop *loop)
+{
+ return loop_autovec_infos.get (loop)->current_lmul;
+}
+
+/* Update the live ranges according PHI.
+
+ Loop:
+ bb 2:
+ STMT 1 -- point 0
+ STMT 2 (def SSA 1) -- point 1
+ STMT 3 (use SSA 1) -- point 2
+ STMT 4 -- point 3
+ bb 3:
+ SSA 2 = PHI<SSA 1>
+ STMT 1 -- point 0
+ STMT 2 -- point 1
+ STMT 3 (use SSA 2) -- point 2
+ STMT 4 -- point 3
+
+ Before this function, the SSA 1 live range is [2, 3] in bb 2
+ and SSA 2 is [0, 3] in bb 3.
+
+ Then, after this function, we update SSA 1 live range in bb 2
+ into [2, 4] since SSA 1 is live out into bb 3. */
+static void
+update_local_live_ranges (
+ vec_info *vinfo,
+ hash_map<basic_block, vec<stmt_point>> &program_points_per_bb,
+ hash_map<basic_block, hash_map<tree, pair>> &live_ranges_per_bb)
+{
+ loop_vec_info loop_vinfo = dyn_cast<loop_vec_info> (vinfo);
+ if (!loop_vinfo)
+ return;
+
+ class loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
+ basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
+ unsigned int nbbs = loop->num_nodes;
+ unsigned int i, j;
+ gphi_iterator psi;
+ for (i = 0; i < nbbs; i++)
+ {
+ basic_block bb = bbs[i];
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Update local program points for bb %d:\n", bb->index);
+ for (psi = gsi_start_phis (bbs[i]); !gsi_end_p (psi); gsi_next (&psi))
+ {
+ gphi *phi = psi.phi ();
+ stmt_vec_info stmt_info = vinfo->lookup_stmt (phi);
+ if (STMT_VINFO_TYPE (vect_stmt_to_vectorize (stmt_info))
+ == undef_vec_info_type)
+ continue;
+
+ for (j = 0; j < gimple_phi_num_args (phi); j++)
+ {
+ edge e = gimple_phi_arg_edge (phi, j);
+ tree def = gimple_phi_arg_def (phi, j);
+ auto *live_ranges = live_ranges_per_bb.get (e->src);
+ if (!program_points_per_bb.get (e->src))
+ continue;
+ unsigned int max_point
+ = (*program_points_per_bb.get (e->src)).length () - 1;
+ auto *live_range = live_ranges->get (def);
+ if (!live_range)
+ continue;
+
+ unsigned int end = (*live_range).second;
+ (*live_range).second = max_point;
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Update %T end point from %d to %d:\n", def,
+ end, (*live_range).second);
+ }
+ }
+ }
+}
+
costs::costs (vec_info *vinfo, bool costing_for_scalar)
: vector_costs (vinfo, costing_for_scalar)
{}
+/* Return true that the LMUL of new COST model is preferred. */
+bool
+costs::preferred_new_lmul_p (const vector_costs *uncast_other) const
+{
+ auto other = static_cast<const costs *> (uncast_other);
+ auto this_loop_vinfo = as_a<loop_vec_info> (this->m_vinfo);
+ auto other_loop_vinfo = as_a<loop_vec_info> (other->m_vinfo);
+ class loop *loop = LOOP_VINFO_LOOP (this_loop_vinfo);
+
+ if (!LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (this_loop_vinfo)
+ && LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P (other_loop_vinfo))
+ return false;
+
+ if (loop_autovec_infos.get (loop) && loop_autovec_infos.get (loop)->end_p)
+ return false;
+ else if (loop_autovec_infos.get (loop))
+ loop_autovec_infos.get (loop)->current_lmul
+ = loop_autovec_infos.get (loop)->current_lmul / 2;
+ else
+ {
+ int regno_alignment
+ = riscv_get_v_regno_alignment (other_loop_vinfo->vector_mode);
+ if (known_eq (LOOP_VINFO_SLP_UNROLLING_FACTOR (other_loop_vinfo), 1U))
+ regno_alignment = RVV_M8;
+ loop_autovec_infos.put (loop, {regno_alignment, regno_alignment, false});
+ }
+
+ int lmul = get_current_lmul (loop);
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_NOTE, vect_location,
+ "Comparing two main loops (%s at VF %d vs %s at VF %d)\n",
+ GET_MODE_NAME (this_loop_vinfo->vector_mode),
+ vect_vf_for_cost (this_loop_vinfo),
+ GET_MODE_NAME (other_loop_vinfo->vector_mode),
+ vect_vf_for_cost (other_loop_vinfo));
+
+ /* Compute local program points.
+ It's a fast and effective computation. */
+ hash_map<basic_block, vec<stmt_point>> program_points_per_bb;
+ compute_local_program_points (other->m_vinfo, program_points_per_bb);
+
+ /* Compute local live ranges. */
+ hash_map<basic_block, hash_map<tree, pair>> live_ranges_per_bb;
+ machine_mode biggest_mode
+ = compute_local_live_ranges (program_points_per_bb, live_ranges_per_bb);
+
+ /* Update live ranges according to PHI. */
+ update_local_live_ranges (other->m_vinfo, program_points_per_bb,
+ live_ranges_per_bb);
+
+ /* TODO: We calculate the maximum live vars base on current STMTS
+ sequence. We can support live range shrink if it can give us
+ big improvement in the future. */
+ if (!live_ranges_per_bb.is_empty ())
+ {
+ unsigned int max_nregs = 0;
+ for (hash_map<basic_block, hash_map<tree, pair>>::iterator iter
+ = live_ranges_per_bb.begin ();
+ iter != live_ranges_per_bb.end (); ++iter)
+ {
+ basic_block bb = (*iter).first;
+ unsigned int max_point
+ = (*program_points_per_bb.get (bb)).length () - 1;
+ if ((*iter).second.is_empty ())
+ continue;
+ /* We prefer larger LMUL unless it causes register spillings. */
+ unsigned int nregs
+ = max_number_of_live_regs (bb, (*iter).second, max_point,
+ biggest_mode, lmul);
+ if (nregs > max_nregs)
+ max_nregs = nregs;
+ live_ranges_per_bb.empty ();
+ }
+ live_ranges_per_bb.empty ();
+ if (loop_autovec_infos.get (loop)->current_lmul == RVV_M1
+ || max_nregs <= V_REG_NUM)
+ loop_autovec_infos.get (loop)->end_p = true;
+ if (loop_autovec_infos.get (loop)->current_lmul > RVV_M1)
+ return max_nregs > V_REG_NUM;
+ return false;
+ }
+ if (!program_points_per_bb.is_empty ())
+ {
+ for (hash_map<basic_block, vec<stmt_point>>::iterator iter
+ = program_points_per_bb.begin ();
+ iter != program_points_per_bb.end (); ++iter)
+ {
+ vec<stmt_point> program_points = (*iter).second;
+ if (!program_points.is_empty ())
+ program_points.release ();
+ }
+ program_points_per_bb.empty ();
+ }
+ return lmul > RVV_M1;
+}
+
+bool
+costs::better_main_loop_than_p (const vector_costs *uncast_other) const
+{
+ auto other = static_cast<const costs *> (uncast_other);
+
+ if (!flag_vect_cost_model)
+ return vector_costs::better_main_loop_than_p (other);
+
+ if (riscv_autovec_lmul == RVV_DYNAMIC)
+ {
+ bool post_dom_available_p = dom_info_available_p (CDI_POST_DOMINATORS);
+ if (!post_dom_available_p)
+ calculate_dominance_info (CDI_POST_DOMINATORS);
+ bool preferred_p = preferred_new_lmul_p (uncast_other);
+ if (!post_dom_available_p)
+ free_dominance_info (CDI_POST_DOMINATORS);
+ return preferred_p;
+ }
+
+ return vector_costs::better_main_loop_than_p (other);
+}
+
unsigned
costs::add_stmt_cost (int count, vect_cost_for_stmt kind,
stmt_vec_info stmt_info, slp_tree, tree vectype,
diff --git a/gcc/config/riscv/riscv-vector-costs.h b/gcc/config/riscv/riscv-vector-costs.h
index 57b1be0..7b5814a 100644
--- a/gcc/config/riscv/riscv-vector-costs.h
+++ b/gcc/config/riscv/riscv-vector-costs.h
@@ -23,6 +23,23 @@
namespace riscv_vector {
+struct stmt_point
+{
+ /* Program point. */
+ unsigned int point;
+ gimple *stmt;
+};
+
+/* Pair typedef used by live range: <start, end>. */
+typedef std::pair<unsigned int, unsigned int> pair;
+
+struct autovec_info
+{
+ unsigned int initial_lmul;
+ unsigned int current_lmul;
+ bool end_p;
+};
+
/* rvv-specific vector costs. */
class costs : public vector_costs
{
@@ -31,12 +48,16 @@ class costs : public vector_costs
public:
costs (vec_info *, bool);
+ bool better_main_loop_than_p (const vector_costs *other) const override;
+
private:
unsigned int add_stmt_cost (int count, vect_cost_for_stmt kind,
stmt_vec_info stmt_info, slp_tree node,
tree vectype, int misalign,
vect_cost_model_location where) override;
void finish_cost (const vector_costs *) override;
+
+ bool preferred_new_lmul_p (const vector_costs *) const;
};
} // namespace riscv_vector
diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc
index f81361c..df980b6 100644
--- a/gcc/config/riscv/riscv-vsetvl.cc
+++ b/gcc/config/riscv/riscv-vsetvl.cc
@@ -649,6 +649,8 @@ emit_vsetvl_insn (enum vsetvl_type insn_type, enum emit_type emit_type,
{
fprintf (dump_file, "\nInsert vsetvl insn PATTERN:\n");
print_rtl_single (dump_file, pat);
+ fprintf (dump_file, "\nfor insn:\n");
+ print_rtl_single (dump_file, rinsn);
}
if (emit_type == EMIT_DIRECT)
@@ -1306,6 +1308,14 @@ vlmul_for_first_sew_second_ratio (const vector_insn_info &info1,
return calculate_vlmul (info1.get_sew (), info2.get_ratio ());
}
+static vlmul_type
+vlmul_for_greatest_sew_second_ratio (const vector_insn_info &info1,
+ const vector_insn_info &info2)
+{
+ return calculate_vlmul (MAX (info1.get_sew (), info2.get_sew ()),
+ info2.get_ratio ());
+}
+
static unsigned
ratio_for_second_sew_first_vlmul (const vector_insn_info &info1,
const vector_insn_info &info2)
@@ -1652,6 +1662,8 @@ avl_info::operator== (const avl_info &other) const
/* Handle VLMAX AVL. */
if (vlmax_avl_p (m_value))
return vlmax_avl_p (other.get_value ());
+ if (vlmax_avl_p (other.get_value ()))
+ return false;
/* If any source is undef value, we think they are not equal. */
if (!m_source || !other.get_source ())
@@ -2258,6 +2270,18 @@ vector_insn_info::global_merge (const vector_insn_info &merge_info,
new_info.set_avl_source (first_set);
}
+ /* Make sure VLMAX AVL always has a set_info the get VL. */
+ if (vlmax_avl_p (new_info.get_avl ()))
+ {
+ if (this->get_avl_source ())
+ new_info.set_avl_source (this->get_avl_source ());
+ else
+ {
+ gcc_assert (merge_info.get_avl_source ());
+ new_info.set_avl_source (merge_info.get_avl_source ());
+ }
+ }
+
new_info.fuse_sew_lmul (*this, merge_info);
new_info.fuse_tail_policy (*this, merge_info);
new_info.fuse_mask_policy (*this, merge_info);
@@ -2274,9 +2298,6 @@ vector_insn_info::get_avl_or_vl_reg (void) const
if (!vlmax_avl_p (get_avl ()))
return get_avl ();
- if (get_avl_source ())
- return get_avl_reg_rtx ();
-
rtx_insn *rinsn = get_insn ()->rtl ();
if (has_vl_op (rinsn) || vsetvl_insn_p (rinsn))
{
@@ -2288,14 +2309,9 @@ vector_insn_info::get_avl_or_vl_reg (void) const
return vl;
}
- /* A DIRTY (polluted EMPTY) block if:
- - get_insn is scalar move (no AVL or VL operand).
- - get_avl_source is null (no def in the current DIRTY block).
- Then we trace the previous insn which must be the insn
- already inserted in Phase 2 to get the VL operand for VLMAX. */
- rtx_insn *prev_rinsn = PREV_INSN (rinsn);
- gcc_assert (prev_rinsn && vsetvl_insn_p (prev_rinsn));
- return ::get_vl (prev_rinsn);
+ /* We always has avl_source if it is VLMAX AVL. */
+ gcc_assert (get_avl_source ());
+ return get_avl_reg_rtx ();
}
bool
@@ -3861,7 +3877,7 @@ pass_vsetvl::local_eliminate_vsetvl_insn (const bb_info *bb) const
skip_one = true;
}
- curr_avl = get_avl (rinsn);
+ curr_avl = curr_dem.get_avl ();
/* Some instrucion like pred_extract_first<mode> don't reqruie avl, so
the avl is null, use vl_placeholder for unify the handling
@@ -4054,7 +4070,8 @@ pass_vsetvl::global_eliminate_vsetvl_insn (const bb_info *bb) const
}
/* Step1: Reshape the VL/VTYPE status to make sure everything compatible. */
- auto_vec<basic_block> pred_cfg_bbs = get_dominated_by (CDI_POST_DOMINATORS, cfg_bb);
+ auto_vec<basic_block> pred_cfg_bbs
+ = get_dominated_by (CDI_POST_DOMINATORS, cfg_bb);
FOR_EACH_EDGE (e, ei, cfg_bb->preds)
{
sbitmap avout = m_vector_manager->vector_avout[e->src->index];
diff --git a/gcc/config/riscv/riscv-vsetvl.def b/gcc/config/riscv/riscv-vsetvl.def
index 7289c01..709cc4e 100644
--- a/gcc/config/riscv/riscv-vsetvl.def
+++ b/gcc/config/riscv/riscv-vsetvl.def
@@ -329,8 +329,8 @@ DEF_SEW_LMUL_FUSE_RULE (/*SEW*/ DEMAND_TRUE, /*LMUL*/ DEMAND_FALSE,
/*NEW_DEMAND_SEW*/ true,
/*NEW_DEMAND_LMUL*/ false,
/*NEW_DEMAND_RATIO*/ true,
- /*NEW_DEMAND_GE_SEW*/ true, greatest_sew, first_vlmul,
- second_ratio)
+ /*NEW_DEMAND_GE_SEW*/ true, greatest_sew,
+ vlmul_for_greatest_sew_second_ratio, second_ratio)
DEF_SEW_LMUL_FUSE_RULE (/*SEW*/ DEMAND_TRUE, /*LMUL*/ DEMAND_FALSE,
/*RATIO*/ DEMAND_ANY, /*GE_SEW*/ DEMAND_TRUE,
/*SEW*/ DEMAND_FALSE, /*LMUL*/ DEMAND_TRUE,
diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 12926b2..8c766e2 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -64,6 +64,7 @@ along with GCC; see the file COPYING3. If not see
#include "cfghooks.h"
#include "cfgloop.h"
#include "cfgrtl.h"
+#include "shrink-wrap.h"
#include "sel-sched.h"
#include "sched-int.h"
#include "fold-const.h"
@@ -395,6 +396,7 @@ static const struct riscv_tune_param optimize_size_tune_info = {
false, /* use_divmod_expansion */
};
+static bool riscv_avoid_shrink_wrapping_separate ();
static tree riscv_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
static tree riscv_handle_type_attribute (tree *, tree, tree, int, bool *);
static void riscv_legitimize_poly_move (machine_mode, rtx, rtx, rtx);
@@ -2512,6 +2514,70 @@ riscv_legitimize_move (machine_mode mode, rtx dest, rtx src)
return true;
}
/* Expand
+ (set (reg:DI target) (subreg:DI (reg:V8QI reg) 0))
+ Expand this data movement instead of simply forbid it since
+ we can improve the code generation for this following scenario
+ by RVV auto-vectorization:
+ (set (reg:V8QI 149) (vec_duplicate:V8QI (reg:QI))
+ (set (reg:DI target) (subreg:DI (reg:V8QI reg) 0))
+ Since RVV mode and scalar mode are in different REG_CLASS,
+ we need to explicitly move data from V_REGS to GR_REGS by scalar move. */
+ if (SUBREG_P (src) && riscv_v_ext_mode_p (GET_MODE (SUBREG_REG (src))))
+ {
+ machine_mode vmode = GET_MODE (SUBREG_REG (src));
+ unsigned int mode_size = GET_MODE_SIZE (mode).to_constant ();
+ unsigned int vmode_size = GET_MODE_SIZE (vmode).to_constant ();
+ unsigned int nunits = vmode_size / mode_size;
+ scalar_mode smode = as_a<scalar_mode> (mode);
+ unsigned int index = SUBREG_BYTE (src).to_constant () / mode_size;
+ unsigned int num = smode == DImode && !TARGET_VECTOR_ELEN_64 ? 2 : 1;
+
+ if (num == 2)
+ {
+ /* If we want to extract 64bit value but ELEN < 64,
+ we use RVV vector mode with EEW = 32 to extract
+ the highpart and lowpart. */
+ smode = SImode;
+ nunits = nunits * 2;
+ }
+ vmode = riscv_vector::get_vector_mode (smode, nunits).require ();
+ enum insn_code icode
+ = convert_optab_handler (vec_extract_optab, vmode, smode);
+ gcc_assert (icode != CODE_FOR_nothing);
+ rtx v = gen_lowpart (vmode, SUBREG_REG (src));
+
+ for (unsigned int i = 0; i < num; i++)
+ {
+ class expand_operand ops[3];
+ rtx result;
+ if (num == 1)
+ result = dest;
+ else if (i == 0)
+ result = gen_lowpart (smode, dest);
+ else
+ result = gen_reg_rtx (smode);
+ create_output_operand (&ops[0], result, smode);
+ ops[0].target = 1;
+ create_input_operand (&ops[1], v, vmode);
+ create_integer_operand (&ops[2], index + i);
+ expand_insn (icode, 3, ops);
+ if (ops[0].value != result)
+ emit_move_insn (result, ops[0].value);
+
+ if (i == 1)
+ {
+ rtx tmp
+ = expand_binop (Pmode, ashl_optab, gen_lowpart (Pmode, result),
+ gen_int_mode (32, Pmode), NULL_RTX, 0,
+ OPTAB_DIRECT);
+ rtx tmp2 = expand_binop (Pmode, ior_optab, tmp, dest, NULL_RTX, 0,
+ OPTAB_DIRECT);
+ emit_move_insn (dest, tmp2);
+ }
+ }
+ return true;
+ }
+ /* Expand
(set (reg:QI target) (mem:QI (address)))
to
(set (reg:DI temp) (zero_extend:DI (mem:QI (address))))
@@ -5842,7 +5908,9 @@ riscv_avoid_multi_push (const struct riscv_frame_info *frame)
{
if (!TARGET_ZCMP || crtl->calls_eh_return || frame_pointer_needed
|| cfun->machine->interrupt_handler_p || cfun->machine->varargs_size != 0
- || crtl->args.pretend_args_size != 0 || flag_shrink_wrap_separate
+ || crtl->args.pretend_args_size != 0
+ || (use_shrink_wrapping_separate ()
+ && !riscv_avoid_shrink_wrapping_separate ())
|| (frame->mask & ~MULTI_PUSH_GPR_MASK))
return true;
@@ -7230,6 +7298,17 @@ riscv_epilogue_uses (unsigned int regno)
return false;
}
+static bool
+riscv_avoid_shrink_wrapping_separate ()
+{
+ if (riscv_use_save_libcall (&cfun->machine->frame)
+ || cfun->machine->interrupt_handler_p
+ || !cfun->machine->frame.gp_sp_offset.is_constant ())
+ return true;
+
+ return false;
+}
+
/* Implement TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS. */
static sbitmap
@@ -7239,9 +7318,7 @@ riscv_get_separate_components (void)
sbitmap components = sbitmap_alloc (FIRST_PSEUDO_REGISTER);
bitmap_clear (components);
- if (riscv_use_save_libcall (&cfun->machine->frame)
- || cfun->machine->interrupt_handler_p
- || !cfun->machine->frame.gp_sp_offset.is_constant ())
+ if (riscv_avoid_shrink_wrapping_separate ())
return components;
offset = cfun->machine->frame.gp_sp_offset.to_constant ();
@@ -7708,11 +7785,9 @@ riscv_sched_variable_issue (FILE *, int, rtx_insn *insn, int more)
if (get_attr_type (insn) == TYPE_GHOST)
return 0;
-#if 0
/* If we ever encounter an insn with an unknown type, trip
an assert so we can find and fix this problem. */
gcc_assert (get_attr_type (insn) != TYPE_UNKNOWN);
-#endif
return more - 1;
}
@@ -9162,7 +9237,7 @@ riscv_emit_frm_mode_set (int mode, int prev_mode)
rtx frm = gen_int_mode (mode, SImode);
if (mode == riscv_vector::FRM_DYN_CALL
- && prev_mode != riscv_vector::FRM_DYN)
+ && prev_mode != riscv_vector::FRM_DYN && STATIC_FRM_P (cfun))
/* No need to emit when prev mode is DYN already. */
emit_insn (gen_fsrmsi_restore_volatile (backup_reg));
else if (mode == riscv_vector::FRM_DYN_EXIT && STATIC_FRM_P (cfun)
diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md
index b630b51..e00b8ee 100644
--- a/gcc/config/riscv/riscv.md
+++ b/gcc/config/riscv/riscv.md
@@ -82,6 +82,9 @@
;; the calling convention of callee
UNSPEC_CALLEE_CC
+
+ ;; String unspecs
+ UNSPEC_STRLEN
])
(define_c_enum "unspecv" [
@@ -316,6 +319,9 @@
;; condmove conditional moves
;; cbo cache block instructions
;; crypto cryptography instructions
+;; pushpop zc push and pop instructions
+;; mvpair zc move pair instructions
+;; zicond zicond instructions
;; Classification of RVV instructions which will be added to each RVV .md pattern and used by scheduler.
;; rdvlenb vector byte length vlenb csrr read
;; rdvl vector length vl csrr read
@@ -425,8 +431,8 @@
mtc,mfc,const,arith,logical,shift,slt,imul,idiv,move,fmove,fadd,fmul,
fmadd,fdiv,fcmp,fcvt,fsqrt,multi,auipc,sfb_alu,nop,trap,ghost,bitmanip,
rotate,clmul,min,max,minu,maxu,clz,ctz,cpop,
- atomic,condmove,cbo,crypto,rdvlenb,rdvl,wrvxrm,wrfrm,rdfrm,vsetvl,
- vlde,vste,vldm,vstm,vlds,vsts,
+ atomic,condmove,cbo,crypto,pushpop,mvpair,zicond,rdvlenb,rdvl,wrvxrm,wrfrm,
+ rdfrm,vsetvl,vlde,vste,vldm,vstm,vlds,vsts,
vldux,vldox,vstux,vstox,vldff,vldr,vstr,
vlsegde,vssegte,vlsegds,vssegts,vlsegdux,vlsegdox,vssegtux,vssegtox,vlsegdff,
vialu,viwalu,vext,vicalu,vshift,vnshift,vicmp,viminmax,
@@ -2225,6 +2231,7 @@
"TARGET_HARD_FLOAT && !TARGET_64BIT && TARGET_ZFA"
"fmv.x.w\t%0,%1"
[(set_attr "move_type" "fmove")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
@@ -2237,6 +2244,7 @@
"TARGET_HARD_FLOAT && !TARGET_64BIT && TARGET_ZFA"
"fmvh.x.d\t%0,%1"
[(set_attr "move_type" "fmove")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
(define_insn "movdfsisi3_rv32"
@@ -2249,6 +2257,7 @@
"TARGET_HARD_FLOAT && !TARGET_64BIT && TARGET_ZFA"
"fmvp.d.x\t%0,%2,%1"
[(set_attr "move_type" "fmove")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
(define_split
@@ -2855,7 +2864,7 @@
[(set_attr "type" "slt")
(set_attr "mode" "<X:MODE>")])
-(define_insn "*slt<u>_<X:mode><GPR:mode>"
+(define_insn "@slt<u>_<X:mode><GPR:mode>3"
[(set (match_operand:GPR 0 "register_operand" "= r")
(any_lt:GPR (match_operand:X 1 "register_operand" " r")
(match_operand:X 2 "arith_operand" " rI")))]
@@ -3501,6 +3510,73 @@
"TARGET_XTHEADMAC"
)
+;; String compare with length insn.
+;; Argument 0 is the target (result)
+;; Argument 1 is the source1
+;; Argument 2 is the source2
+;; Argument 3 is the length
+;; Argument 4 is the alignment
+
+(define_expand "cmpstrnsi"
+ [(parallel [(set (match_operand:SI 0)
+ (compare:SI (match_operand:BLK 1)
+ (match_operand:BLK 2)))
+ (use (match_operand:SI 3))
+ (use (match_operand:SI 4))])]
+ "riscv_inline_strncmp && !optimize_size && (TARGET_ZBB || TARGET_XTHEADBB)"
+{
+ if (riscv_expand_strcmp (operands[0], operands[1], operands[2],
+ operands[3], operands[4]))
+ DONE;
+ else
+ FAIL;
+})
+
+;; String compare insn.
+;; Argument 0 is the target (result)
+;; Argument 1 is the source1
+;; Argument 2 is the source2
+;; Argument 3 is the alignment
+
+(define_expand "cmpstrsi"
+ [(parallel [(set (match_operand:SI 0)
+ (compare:SI (match_operand:BLK 1)
+ (match_operand:BLK 2)))
+ (use (match_operand:SI 3))])]
+ "riscv_inline_strcmp && !optimize_size && (TARGET_ZBB || TARGET_XTHEADBB)"
+{
+ if (riscv_expand_strcmp (operands[0], operands[1], operands[2],
+ NULL_RTX, operands[3]))
+ DONE;
+ else
+ FAIL;
+})
+
+;; Search character in string (generalization of strlen).
+;; Argument 0 is the resulting offset
+;; Argument 1 is the string
+;; Argument 2 is the search character
+;; Argument 3 is the alignment
+
+(define_expand "strlen<mode>"
+ [(set (match_operand:X 0 "register_operand")
+ (unspec:X [(match_operand:BLK 1 "general_operand")
+ (match_operand:SI 2 "const_int_operand")
+ (match_operand:SI 3 "const_int_operand")]
+ UNSPEC_STRLEN))]
+ "riscv_inline_strlen && !optimize_size && (TARGET_ZBB || TARGET_XTHEADBB)"
+{
+ rtx search_char = operands[2];
+
+ if (search_char != const0_rtx)
+ FAIL;
+
+ if (riscv_expand_strlen (operands[0], operands[1], operands[2], operands[3]))
+ DONE;
+ else
+ FAIL;
+})
+
(include "bitmanip.md")
(include "crypto.md")
(include "sync.md")
diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt
index 6f769c3..21d0060 100644
--- a/gcc/config/riscv/riscv.opt
+++ b/gcc/config/riscv/riscv.opt
@@ -281,6 +281,22 @@ minline-atomics
Target Var(TARGET_INLINE_SUBWORD_ATOMIC) Init(1)
Always inline subword atomic operations.
+minline-strcmp
+Target Bool Var(riscv_inline_strcmp) Init(0)
+Inline strcmp calls if possible.
+
+minline-strncmp
+Target Bool Var(riscv_inline_strncmp) Init(0)
+Inline strncmp calls if possible.
+
+minline-strlen
+Target Bool Var(riscv_inline_strlen) Init(0)
+Inline strlen calls if possible.
+
+-param=riscv-strcmp-inline-limit=
+Target RejectNegative Joined UInteger Var(riscv_strcmp_inline_limit) Init(64)
+Max number of bytes to compare as part of inlined strcmp/strncmp routines (default: 64).
+
Enum
Name(riscv_autovec_preference) Type(enum riscv_autovec_preference_enum)
Valid arguments to -param=riscv-autovec-preference=:
diff --git a/gcc/config/riscv/t-riscv b/gcc/config/riscv/t-riscv
index b1f80d1..104f85c 100644
--- a/gcc/config/riscv/t-riscv
+++ b/gcc/config/riscv/t-riscv
@@ -70,7 +70,8 @@ riscv-vsetvl.o: $(srcdir)/config/riscv/riscv-vsetvl.cc \
riscv-vector-costs.o: $(srcdir)/config/riscv/riscv-vector-costs.cc \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TARGET_H) $(FUNCTION_H) \
$(TREE_H) basic-block.h $(RTL_H) gimple.h targhooks.h cfgloop.h \
- fold-const.h $(TM_P_H) tree-vectorizer.h \
+ fold-const.h $(TM_P_H) tree-vectorizer.h gimple-iterator.h bitmap.h \
+ ssa.h backend.h \
$(srcdir)/config/riscv/riscv-vector-costs.h
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(srcdir)/config/riscv/riscv-vector-costs.cc
@@ -91,6 +92,12 @@ riscv-selftests.o: $(srcdir)/config/riscv/riscv-selftests.cc \
$(COMPILE) $<
$(POSTCOMPILE)
+riscv-string.o: $(srcdir)/config/riscv/riscv-string.cc \
+ $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) backend.h $(RTL_H) \
+ memmodel.h $(EMIT_RTL_H) poly-int.h output.h
+ $(COMPILE) $<
+ $(POSTCOMPILE)
+
riscv-v.o: $(srcdir)/config/riscv/riscv-v.cc \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
$(TM_P_H) $(TARGET_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
diff --git a/gcc/config/riscv/thead.md b/gcc/config/riscv/thead.md
index 2287b75..4bb731b 100644
--- a/gcc/config/riscv/thead.md
+++ b/gcc/config/riscv/thead.md
@@ -121,7 +121,7 @@
[(set_attr "type" "bitmanip")
(set_attr "mode" "<X:MODE>")])
-(define_insn "*th_rev<mode>2"
+(define_insn "th_rev<mode>2"
[(set (match_operand:GPR 0 "register_operand" "=r")
(bswap:GPR (match_operand:GPR 1 "register_operand" "r")))]
"TARGET_XTHEADBB && (TARGET_64BIT || <MODE>mode == SImode)"
@@ -132,6 +132,13 @@
[(set_attr "type" "bitmanip")
(set_attr "mode" "<GPR:MODE>")])
+(define_insn "th_tstnbz<mode>2"
+ [(set (match_operand:X 0 "register_operand" "=r")
+ (unspec:X [(match_operand:X 1 "register_operand" "r")] UNSPEC_ORC_B))]
+ "TARGET_XTHEADBB"
+ "th.tstnbz\t%0,%1"
+ [(set_attr "type" "bitmanip")])
+
;; XTheadBs
(define_insn "*th_tst<mode>3"
@@ -180,6 +187,7 @@
"!TARGET_64BIT && TARGET_XTHEADFMV"
"fmv.w.x\t%0,%2\n\tth.fmv.hw.x\t%0,%1"
[(set_attr "move_type" "move")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
(define_insn "th_fmv_x_w"
@@ -189,6 +197,7 @@
"!TARGET_64BIT && TARGET_XTHEADFMV"
"fmv.x.w\t%0,%1"
[(set_attr "move_type" "move")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
(define_insn "th_fmv_x_hw"
@@ -198,6 +207,7 @@
"!TARGET_64BIT && TARGET_XTHEADFMV"
"th.fmv.x.hw\t%0,%1"
[(set_attr "move_type" "move")
+ (set_attr "type" "fmove")
(set_attr "mode" "DF")])
;; XTheadMac
@@ -333,6 +343,7 @@
&& th_mempair_operands_p (operands, true, <GPR:MODE>mode)"
{ return th_mempair_output_move (operands, true, <GPR:MODE>mode, UNKNOWN); }
[(set_attr "move_type" "load")
+ (set_attr "type" "load")
(set_attr "mode" "<GPR:MODE>")])
;; MEMPAIR store 64/32 bit
@@ -345,6 +356,7 @@
&& th_mempair_operands_p (operands, false, <GPR:MODE>mode)"
{ return th_mempair_output_move (operands, false, <GPR:MODE>mode, UNKNOWN); }
[(set_attr "move_type" "store")
+ (set_attr "type" "store")
(set_attr "mode" "<GPR:MODE>")])
;; MEMPAIR load DI extended signed SI
@@ -357,6 +369,7 @@
&& th_mempair_operands_p (operands, true, SImode)"
{ return th_mempair_output_move (operands, true, SImode, SIGN_EXTEND); }
[(set_attr "move_type" "load")
+ (set_attr "type" "load")
(set_attr "mode" "DI")
(set_attr "length" "8")])
@@ -370,6 +383,7 @@
&& th_mempair_operands_p (operands, true, SImode)"
{ return th_mempair_output_move (operands, true, SImode, ZERO_EXTEND); }
[(set_attr "move_type" "load")
+ (set_attr "type" "load")
(set_attr "mode" "DI")
(set_attr "length" "8")])
diff --git a/gcc/config/riscv/vector-iterators.md b/gcc/config/riscv/vector-iterators.md
index 2f7f7cb..0b395e6 100644
--- a/gcc/config/riscv/vector-iterators.md
+++ b/gcc/config/riscv/vector-iterators.md
@@ -67,9 +67,6 @@
UNSPEC_UNSIGNED_VFCVT
UNSPEC_ROD
- UNSPEC_REDUC
- UNSPEC_WREDUC_SUM
- UNSPEC_WREDUC_USUM
UNSPEC_VSLIDEUP
UNSPEC_VSLIDEDOWN
UNSPEC_VSLIDE1UP
@@ -83,6 +80,24 @@
UNSPEC_MODIFY_VL
UNSPEC_VFFMA
+
+ ;; Integer and Float Reduction
+ UNSPEC_REDUC
+ UNSPEC_REDUC_SUM
+ UNSPEC_REDUC_SUM_ORDERED
+ UNSPEC_REDUC_SUM_UNORDERED
+ UNSPEC_REDUC_MAXU
+ UNSPEC_REDUC_MAX
+ UNSPEC_REDUC_MINU
+ UNSPEC_REDUC_MIN
+ UNSPEC_REDUC_AND
+ UNSPEC_REDUC_OR
+ UNSPEC_REDUC_XOR
+
+ UNSPEC_WREDUC_SUM
+ UNSPEC_WREDUC_SUMU
+ UNSPEC_WREDUC_SUM_ORDERED
+ UNSPEC_WREDUC_SUM_UNORDERED
])
(define_c_enum "unspecv" [
@@ -671,6 +686,40 @@
RVVM8SI RVVM4SI RVVM2SI RVVM1SI (RVVMF2SI "TARGET_MIN_VLEN > 32")
])
+(define_mode_iterator VI_QHS_NO_M8 [
+ RVVM4QI RVVM2QI RVVM1QI RVVMF2QI RVVMF4QI (RVVMF8QI "TARGET_MIN_VLEN > 32")
+
+ RVVM4HI RVVM2HI RVVM1HI RVVMF2HI (RVVMF4HI "TARGET_MIN_VLEN > 32")
+
+ RVVM4SI RVVM2SI RVVM1SI (RVVMF2SI "TARGET_MIN_VLEN > 32")
+])
+
+(define_mode_iterator VF_HS [
+ (RVVM8HF "TARGET_ZVFH") (RVVM4HF "TARGET_ZVFH") (RVVM2HF "TARGET_ZVFH")
+ (RVVM1HF "TARGET_ZVFH") (RVVMF2HF "TARGET_ZVFH")
+ (RVVMF4HF "TARGET_ZVFH && TARGET_MIN_VLEN > 32")
+
+ (RVVM8SF "TARGET_VECTOR_ELEN_FP_32") (RVVM4SF "TARGET_VECTOR_ELEN_FP_32") (RVVM2SF "TARGET_VECTOR_ELEN_FP_32")
+ (RVVM1SF "TARGET_VECTOR_ELEN_FP_32") (RVVMF2SF "TARGET_VECTOR_ELEN_FP_32 && TARGET_MIN_VLEN > 32")
+])
+
+(define_mode_iterator VF_HS_NO_M8 [
+ (RVVM4HF "TARGET_ZVFH")
+ (RVVM2HF "TARGET_ZVFH")
+ (RVVM1HF "TARGET_ZVFH")
+ (RVVMF2HF "TARGET_ZVFH")
+ (RVVMF4HF "TARGET_ZVFH && TARGET_MIN_VLEN > 32")
+ (RVVM4SF "TARGET_VECTOR_ELEN_FP_32")
+ (RVVM2SF "TARGET_VECTOR_ELEN_FP_32")
+ (RVVM1SF "TARGET_VECTOR_ELEN_FP_32")
+ (RVVMF2SF "TARGET_VECTOR_ELEN_FP_32 && TARGET_MIN_VLEN > 32")
+])
+
+(define_mode_iterator VF_HS_M8 [
+ (RVVM8HF "TARGET_ZVFH")
+ (RVVM8SF "TARGET_VECTOR_ELEN_FP_32")
+])
+
(define_mode_iterator V_VLSI_QHS [
RVVM8QI RVVM4QI RVVM2QI RVVM1QI RVVMF2QI RVVMF4QI (RVVMF8QI "TARGET_MIN_VLEN > 32")
@@ -1237,33 +1286,145 @@
(RVVM2DF "TARGET_VECTOR_ELEN_FP_64") (RVVM1DF "TARGET_VECTOR_ELEN_FP_64")
])
-(define_mode_iterator VQI_LMUL1 [
- RVVM1QI
-])
-
-(define_mode_iterator VHI_LMUL1 [
- RVVM1HI
-])
-
-(define_mode_iterator VSI_LMUL1 [
- RVVM1SI
-])
-
-(define_mode_iterator VDI_LMUL1 [
- (RVVM1DI "TARGET_VECTOR_ELEN_64")
-])
-
-(define_mode_iterator VHF_LMUL1 [
- (RVVM1HF "TARGET_ZVFH")
-])
-
-(define_mode_iterator VSF_LMUL1 [
- (RVVM1SF "TARGET_VECTOR_ELEN_FP_32")
-])
-
-(define_mode_iterator VDF_LMUL1 [
- (RVVM1DF "TARGET_VECTOR_ELEN_FP_64")
-])
+(define_mode_attr V_LMUL1 [
+ (RVVM8QI "RVVM1QI") (RVVM4QI "RVVM1QI") (RVVM2QI "RVVM1QI") (RVVM1QI "RVVM1QI") (RVVMF2QI "RVVM1QI") (RVVMF4QI "RVVM1QI") (RVVMF8QI "RVVM1QI")
+
+ (RVVM8HI "RVVM1HI") (RVVM4HI "RVVM1HI") (RVVM2HI "RVVM1HI") (RVVM1HI "RVVM1HI") (RVVMF2HI "RVVM1HI") (RVVMF4HI "RVVM1HI")
+
+ (RVVM8SI "RVVM1SI") (RVVM4SI "RVVM1SI") (RVVM2SI "RVVM1SI") (RVVM1SI "RVVM1SI") (RVVMF2SI "RVVM1SI")
+
+ (RVVM8DI "RVVM1DI") (RVVM4DI "RVVM1DI") (RVVM2DI "RVVM1DI") (RVVM1DI "RVVM1DI")
+
+ (RVVM8HF "RVVM1HF") (RVVM4HF "RVVM1HF") (RVVM2HF "RVVM1HF") (RVVM1HF "RVVM1HF") (RVVMF2HF "RVVM1HF") (RVVMF4HF "RVVM1HF")
+
+ (RVVM8SF "RVVM1SF") (RVVM4SF "RVVM1SF") (RVVM2SF "RVVM1SF") (RVVM1SF "RVVM1SF") (RVVMF2SF "RVVM1SF")
+
+ (RVVM8DF "RVVM1DF") (RVVM4DF "RVVM1DF") (RVVM2DF "RVVM1DF") (RVVM1DF "RVVM1DF")
+
+ (V1QI "RVVM1QI")
+ (V2QI "RVVM1QI")
+ (V4QI "RVVM1QI")
+ (V8QI "RVVM1QI")
+ (V16QI "RVVM1QI")
+ (V32QI "RVVM1QI")
+ (V64QI "RVVM1QI")
+ (V128QI "RVVM1QI")
+ (V256QI "RVVM1QI")
+ (V512QI "RVVM1QI")
+ (V1024QI "RVVM1QI")
+ (V2048QI "RVVM1QI")
+ (V4096QI "RVVM1QI")
+ (V1HI "RVVM1HI")
+ (V2HI "RVVM1HI")
+ (V4HI "RVVM1HI")
+ (V8HI "RVVM1HI")
+ (V16HI "RVVM1HI")
+ (V32HI "RVVM1HI")
+ (V64HI "RVVM1HI")
+ (V128HI "RVVM1HI")
+ (V256HI "RVVM1HI")
+ (V512HI "RVVM1HI")
+ (V1024HI "RVVM1HI")
+ (V2048HI "RVVM1HI")
+ (V1SI "RVVM1SI")
+ (V2SI "RVVM1SI")
+ (V4SI "RVVM1SI")
+ (V8SI "RVVM1SI")
+ (V16SI "RVVM1SI")
+ (V32SI "RVVM1SI")
+ (V64SI "RVVM1SI")
+ (V128SI "RVVM1SI")
+ (V256SI "RVVM1SI")
+ (V512SI "RVVM1SI")
+ (V1024SI "RVVM1SI")
+ (V1DI "RVVM1DI")
+ (V2DI "RVVM1DI")
+ (V4DI "RVVM1DI")
+ (V8DI "RVVM1DI")
+ (V16DI "RVVM1DI")
+ (V32DI "RVVM1DI")
+ (V64DI "RVVM1DI")
+ (V128DI "RVVM1DI")
+ (V256DI "RVVM1DI")
+ (V512DI "RVVM1DI")
+ (V1HF "RVVM1HF")
+ (V2HF "RVVM1HF")
+ (V4HF "RVVM1HF")
+ (V8HF "RVVM1HF")
+ (V16HF "RVVM1HF")
+ (V32HF "RVVM1HF")
+ (V64HF "RVVM1HF")
+ (V128HF "RVVM1HF")
+ (V256HF "RVVM1HF")
+ (V512HF "RVVM1HF")
+ (V1024HF "RVVM1HF")
+ (V2048HF "RVVM1HF")
+ (V1SF "RVVM1SF")
+ (V2SF "RVVM1SF")
+ (V4SF "RVVM1SF")
+ (V8SF "RVVM1SF")
+ (V16SF "RVVM1SF")
+ (V32SF "RVVM1SF")
+ (V64SF "RVVM1SF")
+ (V128SF "RVVM1SF")
+ (V256SF "RVVM1SF")
+ (V512SF "RVVM1SF")
+ (V1024SF "RVVM1SF")
+ (V1DF "RVVM1DF")
+ (V2DF "RVVM1DF")
+ (V4DF "RVVM1DF")
+ (V8DF "RVVM1DF")
+ (V16DF "RVVM1DF")
+ (V32DF "RVVM1DF")
+ (V64DF "RVVM1DF")
+ (V128DF "RVVM1DF")
+ (V256DF "RVVM1DF")
+ (V512DF "RVVM1DF")
+])
+
+(define_mode_attr V_EXT_LMUL1 [
+ (RVVM8QI "RVVM1HI") (RVVM4QI "RVVM1HI") (RVVM2QI "RVVM1HI") (RVVM1QI "RVVM1HI") (RVVMF2QI "RVVM1HI") (RVVMF4QI "RVVM1HI") (RVVMF8QI "RVVM1HI")
+
+ (RVVM8HI "RVVM1SI") (RVVM4HI "RVVM1SI") (RVVM2HI "RVVM1SI") (RVVM1HI "RVVM1SI") (RVVMF2HI "RVVM1SI") (RVVMF4HI "RVVM1SI")
+
+ (RVVM8SI "RVVM1DI") (RVVM4SI "RVVM1DI") (RVVM2SI "RVVM1DI") (RVVM1SI "RVVM1DI") (RVVMF2SI "RVVM1DI")
+
+ (RVVM8HF "RVVM1SF") (RVVM4HF "RVVM1SF") (RVVM2HF "RVVM1SF") (RVVM1HF "RVVM1SF") (RVVMF2HF "RVVM1SF") (RVVMF4HF "RVVM1SF")
+
+ (RVVM8SF "RVVM1DF") (RVVM4SF "RVVM1DF") (RVVM2SF "RVVM1DF") (RVVM1SF "RVVM1DF") (RVVMF2SF "RVVM1DF")
+])
+
+(define_int_iterator ANY_REDUC [
+ UNSPEC_REDUC_SUM UNSPEC_REDUC_MAXU UNSPEC_REDUC_MAX UNSPEC_REDUC_MINU
+ UNSPEC_REDUC_MIN UNSPEC_REDUC_AND UNSPEC_REDUC_OR UNSPEC_REDUC_XOR
+])
+
+(define_int_iterator ANY_WREDUC [
+ UNSPEC_WREDUC_SUM UNSPEC_WREDUC_SUMU
+])
+
+(define_int_iterator ANY_FREDUC [
+ UNSPEC_REDUC_MAX UNSPEC_REDUC_MIN
+])
+
+(define_int_iterator ANY_FREDUC_SUM [
+ UNSPEC_REDUC_SUM_ORDERED UNSPEC_REDUC_SUM_UNORDERED
+])
+
+(define_int_iterator ANY_FWREDUC_SUM [
+ UNSPEC_WREDUC_SUM_ORDERED UNSPEC_WREDUC_SUM_UNORDERED
+])
+
+(define_int_attr reduc_op [
+ (UNSPEC_REDUC_SUM "redsum")
+ (UNSPEC_REDUC_SUM_ORDERED "redosum") (UNSPEC_REDUC_SUM_UNORDERED "redusum")
+ (UNSPEC_REDUC_MAXU "redmaxu") (UNSPEC_REDUC_MAX "redmax") (UNSPEC_REDUC_MINU "redminu") (UNSPEC_REDUC_MIN "redmin")
+ (UNSPEC_REDUC_AND "redand") (UNSPEC_REDUC_OR "redor") (UNSPEC_REDUC_XOR "redxor")
+ (UNSPEC_WREDUC_SUM "wredsum") (UNSPEC_WREDUC_SUMU "wredsumu")
+ (UNSPEC_WREDUC_SUM_ORDERED "wredosum") (UNSPEC_WREDUC_SUM_UNORDERED "wredusum")
+])
+
+(define_code_attr WREDUC_UNSPEC [(zero_extend "UNSPEC_WREDUC_SUMU") (sign_extend "UNSPEC_WREDUC_SUM")])
(define_mode_attr VINDEX [
(RVVM8QI "RVVM8QI") (RVVM4QI "RVVM4QI") (RVVM2QI "RVVM2QI") (RVVM1QI "RVVM1QI")
@@ -1689,6 +1850,18 @@
(V1DF "DF") (V2DF "DF") (V4DF "DF") (V8DF "DF") (V16DF "DF") (V32DF "DF") (V64DF "DF") (V128DF "DF") (V256DF "DF") (V512DF "DF")
])
+(define_mode_attr V_DOUBLE_EXTEND_VEL [
+ (RVVM4QI "HI") (RVVM2QI "HI") (RVVM1QI "HI") (RVVMF2QI "HI") (RVVMF4QI "HI") (RVVMF8QI "HI")
+
+ (RVVM4HI "SI") (RVVM2HI "SI") (RVVM1HI "SI") (RVVMF2HI "SI") (RVVMF4HI "SI")
+
+ (RVVM4SI "DI") (RVVM2SI "DI") (RVVM1SI "DI") (RVVMF2SI "DI")
+
+ (RVVM4HF "SF") (RVVM2HF "SF") (RVVM1HF "SF") (RVVMF2HF "SF") (RVVMF4HF "SF")
+
+ (RVVM4SF "DF") (RVVM2SF "DF") (RVVM1SF "DF") (RVVMF2SF "DF")
+])
+
(define_mode_attr vel [
(RVVM8QI "qi") (RVVM4QI "qi") (RVVM2QI "qi") (RVVM1QI "qi") (RVVMF2QI "qi") (RVVMF4QI "qi") (RVVMF8QI "qi")
@@ -2047,6 +2220,18 @@
(RVVM1QI "64") (RVVMF2QI "64") (RVVMF4QI "64") (RVVMF8QI "64")
])
+(define_mode_attr V_DOUBLE_EXTEND [
+ (RVVM4QI "RVVM8HI") (RVVM2QI "RVVM4HI") (RVVM1QI "RVVM2HI") (RVVMF2QI "RVVM1HI") (RVVMF4QI "RVVMF2HI") (RVVMF8QI "RVVMF4HI")
+
+ (RVVM4HI "RVVM8SI") (RVVM2HI "RVVM4SI") (RVVM1HI "RVVM2SI") (RVVMF2HI "RVVM1SI") (RVVMF4HI "RVVMF2SI")
+
+ (RVVM4SI "RVVM8DI") (RVVM2SI "RVVM4DI") (RVVM1SI "RVVM2DI") (RVVMF2SI "RVVM1DI")
+
+ (RVVM4HF "RVVM8SF") (RVVM2HF "RVVM4SF") (RVVM1HF "RVVM2SF") (RVVMF2HF "RVVM1SF") (RVVMF4HF "RVVMF2SF")
+
+ (RVVM4SF "RVVM8DF") (RVVM2SF "RVVM4DF") (RVVM1SF "RVVM2DF") (RVVMF2SF "RVVM1DF")
+])
+
(define_mode_attr V_DOUBLE_TRUNC [
(RVVM8HI "RVVM4QI") (RVVM4HI "RVVM2QI") (RVVM2HI "RVVM1QI") (RVVM1HI "RVVMF2QI") (RVVMF2HI "RVVMF4QI") (RVVMF4HI "RVVMF8QI")
@@ -2262,8 +2447,6 @@
(RVVM2DF "vector_gs_scale_operand_64") (RVVM1DF "vector_gs_scale_operand_64")
])
-(define_int_iterator WREDUC [UNSPEC_WREDUC_SUM UNSPEC_WREDUC_USUM])
-
(define_int_iterator ORDER [UNSPEC_ORDERED UNSPEC_UNORDERED])
(define_int_iterator VMULH [UNSPEC_VMULHS UNSPEC_VMULHU UNSPEC_VMULHSU])
@@ -2292,12 +2475,13 @@
(define_int_attr order [
(UNSPEC_ORDERED "o") (UNSPEC_UNORDERED "u")
+ (UNSPEC_REDUC_SUM_ORDERED "o") (UNSPEC_REDUC_SUM_UNORDERED "u")
+ (UNSPEC_WREDUC_SUM_ORDERED "o") (UNSPEC_WREDUC_SUM_UNORDERED "u")
])
(define_int_attr v_su [(UNSPEC_VMULHS "") (UNSPEC_VMULHU "u") (UNSPEC_VMULHSU "su")
(UNSPEC_VNCLIP "") (UNSPEC_VNCLIPU "u")
- (UNSPEC_VFCVT "") (UNSPEC_UNSIGNED_VFCVT "u")
- (UNSPEC_WREDUC_SUM "") (UNSPEC_WREDUC_USUM "u")])
+ (UNSPEC_VFCVT "") (UNSPEC_UNSIGNED_VFCVT "u")])
(define_int_attr sat_op [(UNSPEC_VAADDU "aaddu") (UNSPEC_VAADD "aadd")
(UNSPEC_VASUBU "asubu") (UNSPEC_VASUB "asub")
(UNSPEC_VSMUL "smul") (UNSPEC_VSSRL "ssrl")
@@ -2354,6 +2538,10 @@
(define_code_iterator sat_int_plus_binop [ss_plus us_plus])
(define_code_iterator sat_int_minus_binop [ss_minus us_minus])
+(define_code_iterator mulh [smul_highpart umul_highpart])
+(define_code_attr mulh_table [(smul_highpart "smul") (umul_highpart "umul")])
+(define_code_attr MULH_UNSPEC [(smul_highpart "UNSPEC_VMULHS") (umul_highpart "UNSPEC_VMULHU")])
+
(define_code_iterator any_widen_binop [plus minus mult])
(define_code_iterator plus_minus [plus minus])
@@ -2379,10 +2567,6 @@
(define_code_iterator any_fix [fix unsigned_fix])
(define_code_iterator any_float [float unsigned_float])
-(define_code_iterator any_reduc [plus umax smax umin smin and ior xor])
-(define_code_iterator any_freduc [smax smin])
-(define_code_attr reduc [(plus "sum") (umax "maxu") (smax "max") (umin "minu")
- (smin "min") (and "and") (ior "or") (xor "xor")])
(define_code_attr fix_cvt [(fix "fix_trunc") (unsigned_fix "fixuns_trunc")])
(define_code_attr float_cvt [(float "float") (unsigned_float "floatuns")])
diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md
index 58e659e..6d3c43e 100644
--- a/gcc/config/riscv/vector.md
+++ b/gcc/config/riscv/vector.md
@@ -25,7 +25,6 @@
;; - Intrinsics (https://github.com/riscv/rvv-intrinsic-doc)
;; - Auto-vectorization (autovec.md)
;; - Optimization (autovec-opt.md)
-;; - VLS patterns (autovec-vls.md)
(include "vector-iterators.md")
@@ -1211,6 +1210,160 @@
(set_attr "mode" "<VT:MODE>")])
;; -----------------------------------------------------------------
+;; ---- VLS Moves Operations
+;; -----------------------------------------------------------------
+
+(define_expand "mov<mode>"
+ [(set (match_operand:VLS_AVL_IMM 0 "reg_or_mem_operand")
+ (match_operand:VLS_AVL_IMM 1 "general_operand"))]
+ "TARGET_VECTOR"
+{
+ if (riscv_vector::legitimize_move (operands[0], operands[1]))
+ DONE;
+})
+
+(define_insn_and_split "*mov<mode>_mem_to_mem"
+ [(set (match_operand:VLS_AVL_IMM 0 "memory_operand")
+ (match_operand:VLS_AVL_IMM 1 "memory_operand"))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+ {
+ if (GET_MODE_BITSIZE (<MODE>mode).to_constant () <= MAX_BITS_PER_WORD)
+ {
+ /* Opitmize the following case:
+
+ typedef int8_t v2qi __attribute__ ((vector_size (2)));
+ v2qi v = *(v2qi*)in;
+ *(v2qi*)out = v;
+
+ We prefer scalar load/store instead of vle.v/vse.v when
+ the VLS modes size is smaller scalar mode. */
+ machine_mode mode;
+ unsigned size = GET_MODE_BITSIZE (<MODE>mode).to_constant ();
+ if (FLOAT_MODE_P (<MODE>mode))
+ mode = mode_for_size (size, MODE_FLOAT, 0).require ();
+ else
+ mode = mode_for_size (size, MODE_INT, 0).require ();
+ emit_move_insn (gen_lowpart (mode, operands[0]),
+ gen_lowpart (mode, operands[1]));
+ }
+ else
+ {
+ operands[1] = force_reg (<MODE>mode, operands[1]);
+ emit_move_insn (operands[0], operands[1]);
+ }
+ DONE;
+ }
+ [(set_attr "type" "vmov")]
+)
+
+(define_insn_and_split "*mov<mode>"
+ [(set (match_operand:VLS_AVL_IMM 0 "reg_or_mem_operand" "=vr, m, vr")
+ (match_operand:VLS_AVL_IMM 1 "reg_or_mem_operand" " m,vr, vr"))]
+ "TARGET_VECTOR
+ && (register_operand (operands[0], <MODE>mode)
+ || register_operand (operands[1], <MODE>mode))"
+ "@
+ #
+ #
+ vmv%m1r.v\t%0,%1"
+ "&& reload_completed
+ && (!register_operand (operands[0], <MODE>mode)
+ || !register_operand (operands[1], <MODE>mode))"
+ [(const_int 0)]
+ {
+ bool ok_p = riscv_vector::legitimize_move (operands[0], operands[1]);
+ gcc_assert (ok_p);
+ DONE;
+ }
+ [(set_attr "type" "vmov")]
+)
+
+(define_expand "mov<mode>"
+ [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand")
+ (match_operand:VLS_AVL_REG 1 "general_operand"))]
+ "TARGET_VECTOR"
+{
+ bool ok_p = riscv_vector::legitimize_move (operands[0], operands[1]);
+ gcc_assert (ok_p);
+ DONE;
+})
+
+(define_expand "@mov<VLS_AVL_REG:mode><P:mode>_lra"
+ [(parallel
+ [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand")
+ (match_operand:VLS_AVL_REG 1 "reg_or_mem_operand"))
+ (clobber (match_scratch:P 2))])]
+ "TARGET_VECTOR && (lra_in_progress || reload_completed)"
+{})
+
+(define_insn_and_split "*mov<VLS_AVL_REG:mode><P:mode>_lra"
+ [(set (match_operand:VLS_AVL_REG 0 "reg_or_mem_operand" "=vr, m,vr")
+ (match_operand:VLS_AVL_REG 1 "reg_or_mem_operand" " m,vr,vr"))
+ (clobber (match_scratch:P 2 "=&r,&r,X"))]
+ "TARGET_VECTOR && (lra_in_progress || reload_completed)
+ && (register_operand (operands[0], <VLS_AVL_REG:MODE>mode)
+ || register_operand (operands[1], <VLS_AVL_REG:MODE>mode))"
+ "#"
+ "&& reload_completed"
+ [(const_int 0)]
+{
+ if (REG_P (operands[0]) && REG_P (operands[1]))
+ emit_insn (gen_rtx_SET (operands[0], operands[1]));
+ else
+ {
+ emit_move_insn (operands[2], gen_int_mode (GET_MODE_NUNITS (<VLS_AVL_REG:MODE>mode),
+ Pmode));
+ unsigned insn_flags
+ = GET_MODE_CLASS (<VLS_AVL_REG:MODE>mode) == MODE_VECTOR_BOOL
+ ? riscv_vector::UNARY_MASK_OP
+ : riscv_vector::UNARY_OP;
+ riscv_vector::emit_nonvlmax_insn (code_for_pred_mov (<VLS_AVL_REG:MODE>mode),
+ insn_flags, operands, operands[2]);
+ }
+ DONE;
+}
+ [(set_attr "type" "vmov")]
+)
+
+(define_insn "*mov<mode>_vls"
+ [(set (match_operand:VLS 0 "register_operand" "=vr")
+ (match_operand:VLS 1 "register_operand" " vr"))]
+ "TARGET_VECTOR"
+ "vmv%m1r.v\t%0,%1"
+ [(set_attr "type" "vmov")
+ (set_attr "mode" "<MODE>")])
+
+(define_insn "*mov<mode>_vls"
+ [(set (match_operand:VLSB 0 "register_operand" "=vr")
+ (match_operand:VLSB 1 "register_operand" " vr"))]
+ "TARGET_VECTOR"
+ "vmv1r.v\t%0,%1"
+ [(set_attr "type" "vmov")
+ (set_attr "mode" "<MODE>")])
+
+(define_expand "movmisalign<mode>"
+ [(set (match_operand:VLS 0 "nonimmediate_operand")
+ (match_operand:VLS 1 "general_operand"))]
+ "TARGET_VECTOR"
+ {
+ /* To support misalign data movement, we should use
+ minimum element alignment load/store. */
+ unsigned int size = GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode));
+ poly_int64 nunits = GET_MODE_NUNITS (<MODE>mode) * size;
+ machine_mode mode = riscv_vector::get_vector_mode (QImode, nunits).require ();
+ operands[0] = gen_lowpart (mode, operands[0]);
+ operands[1] = gen_lowpart (mode, operands[1]);
+ if (MEM_P (operands[0]) && !register_operand (operands[1], mode))
+ operands[1] = force_reg (mode, operands[1]);
+ riscv_vector::emit_vlmax_insn (code_for_pred_mov (mode), riscv_vector::UNARY_OP, operands);
+ DONE;
+ }
+)
+
+;; -----------------------------------------------------------------
;; ---- Duplicate Operations
;; -----------------------------------------------------------------
@@ -1218,16 +1371,20 @@
;; This pattern only handles duplicates of non-constant inputs.
;; Constant vectors go through the movm pattern instead.
;; So "direct_broadcast_operand" can only be mem or reg, no CONSTANT.
-(define_expand "@vec_duplicate<mode>"
- [(set (match_operand:V 0 "register_operand")
- (vec_duplicate:V
- (match_operand:<VEL> 1 "direct_broadcast_operand")))]
- "TARGET_VECTOR"
+(define_insn_and_split "@vec_duplicate<mode>"
+ [(set (match_operand:V_VLS 0 "register_operand")
+ (vec_duplicate:V_VLS
+ (match_operand:<VEL> 1 "direct_broadcast_operand")))]
+ "TARGET_VECTOR && can_create_pseudo_p ()"
+ "#"
+ "&& 1"
+ [(const_int 0)]
{
riscv_vector::emit_vlmax_insn (code_for_pred_broadcast (<MODE>mode),
- riscv_vector::UNARY_OP, operands);
+ riscv_vector::UNARY_OP, operands);
DONE;
}
+ [(set_attr "type" "vector")]
)
;; -----------------------------------------------------------------
@@ -1607,40 +1764,40 @@
(set_attr "mode" "<MODE>")])
(define_insn "@pred_merge<mode>_scalar"
- [(set (match_operand:VI_QHS 0 "register_operand" "=vd,vd")
- (if_then_else:VI_QHS
+ [(set (match_operand:V_VLSI_QHS 0 "register_operand" "=vd,vd")
+ (if_then_else:V_VLSI_QHS
(unspec:<VM>
[(match_operand 5 "vector_length_operand" " rK,rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (vec_merge:VI_QHS
- (vec_duplicate:VI_QHS
+ (vec_merge:V_VLSI_QHS
+ (vec_duplicate:V_VLSI_QHS
(match_operand:<VEL> 3 "register_operand" " r, r"))
- (match_operand:VI_QHS 2 "register_operand" " vr,vr")
+ (match_operand:V_VLSI_QHS 2 "register_operand" " vr,vr")
(match_operand:<VM> 4 "register_operand" " vm,vm"))
- (match_operand:VI_QHS 1 "vector_merge_operand" " vu, 0")))]
+ (match_operand:V_VLSI_QHS 1 "vector_merge_operand" " vu, 0")))]
"TARGET_VECTOR"
"vmerge.vxm\t%0,%2,%3,%4"
[(set_attr "type" "vimerge")
(set_attr "mode" "<MODE>")])
(define_expand "@pred_merge<mode>_scalar"
- [(set (match_operand:VI_D 0 "register_operand")
- (if_then_else:VI_D
+ [(set (match_operand:V_VLSI_D 0 "register_operand")
+ (if_then_else:V_VLSI_D
(unspec:<VM>
[(match_operand 5 "vector_length_operand")
(match_operand 6 "const_int_operand")
(match_operand 7 "const_int_operand")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (vec_merge:VI_D
- (vec_duplicate:VI_D
+ (vec_merge:V_VLSI_D
+ (vec_duplicate:V_VLSI_D
(match_operand:<VEL> 3 "reg_or_int_operand"))
- (match_operand:VI_D 2 "register_operand")
+ (match_operand:V_VLSI_D 2 "register_operand")
(match_operand:<VM> 4 "register_operand"))
- (match_operand:VI_D 1 "vector_merge_operand")))]
+ (match_operand:V_VLSI_D 1 "vector_merge_operand")))]
"TARGET_VECTOR"
{
if (riscv_vector::sew64_scalar_helper (
@@ -1658,41 +1815,41 @@
})
(define_insn "*pred_merge<mode>_scalar"
- [(set (match_operand:VI_D 0 "register_operand" "=vd,vd")
- (if_then_else:VI_D
+ [(set (match_operand:V_VLSI_D 0 "register_operand" "=vd,vd")
+ (if_then_else:V_VLSI_D
(unspec:<VM>
[(match_operand 5 "vector_length_operand" " rK,rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (vec_merge:VI_D
- (vec_duplicate:VI_D
+ (vec_merge:V_VLSI_D
+ (vec_duplicate:V_VLSI_D
(match_operand:<VEL> 3 "register_operand" " r, r"))
- (match_operand:VI_D 2 "register_operand" " vr,vr")
+ (match_operand:V_VLSI_D 2 "register_operand" " vr,vr")
(match_operand:<VM> 4 "register_operand" " vm,vm"))
- (match_operand:VI_D 1 "vector_merge_operand" " vu, 0")))]
+ (match_operand:V_VLSI_D 1 "vector_merge_operand" " vu, 0")))]
"TARGET_VECTOR"
"vmerge.vxm\t%0,%2,%3,%4"
[(set_attr "type" "vimerge")
(set_attr "mode" "<MODE>")])
(define_insn "*pred_merge<mode>_extended_scalar"
- [(set (match_operand:VI_D 0 "register_operand" "=vd,vd")
- (if_then_else:VI_D
+ [(set (match_operand:V_VLSI_D 0 "register_operand" "=vd,vd")
+ (if_then_else:V_VLSI_D
(unspec:<VM>
[(match_operand 5 "vector_length_operand" " rK,rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (vec_merge:VI_D
- (vec_duplicate:VI_D
+ (vec_merge:V_VLSI_D
+ (vec_duplicate:V_VLSI_D
(sign_extend:<VEL>
(match_operand:<VSUBEL> 3 "register_operand" " r, r")))
- (match_operand:VI_D 2 "register_operand" " vr,vr")
+ (match_operand:V_VLSI_D 2 "register_operand" " vr,vr")
(match_operand:<VM> 4 "register_operand" " vm,vm"))
- (match_operand:VI_D 1 "vector_merge_operand" " vu, 0")))]
+ (match_operand:V_VLSI_D 1 "vector_merge_operand" " vu, 0")))]
"TARGET_VECTOR"
"vmerge.vxm\t%0,%2,%3,%4"
[(set_attr "type" "vimerge")
@@ -7177,8 +7334,8 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand")
- (match_operand:VF 5 "register_operand")])
+ [(match_operand:V_VLSF 4 "register_operand")
+ (match_operand:V_VLSF 5 "register_operand")])
(match_operand:<VM> 2 "vector_merge_operand")))]
"TARGET_VECTOR"
{})
@@ -7195,10 +7352,10 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand" " vr, vr")
- (match_operand:VF 5 "register_operand" " vr, vr")])
+ [(match_operand:V_VLSF 4 "register_operand" " vr, vr")
+ (match_operand:V_VLSF 5 "register_operand" " vr, vr")])
(match_operand:<VM> 2 "vector_merge_operand" " vu, 0")))]
- "TARGET_VECTOR && known_le (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_le_one (<MODE>mode)"
"vmf%B3.vv\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7214,8 +7371,8 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 2 "signed_order_operator"
- [(match_operand:VF 3 "register_operand" " vr")
- (match_operand:VF 4 "register_operand" " vr")])
+ [(match_operand:V_VLSF 3 "register_operand" " vr")
+ (match_operand:V_VLSF 4 "register_operand" " vr")])
(match_dup 1)))]
"TARGET_VECTOR"
"vmf%B2.vv\t%0,%3,%4,v0.t"
@@ -7238,10 +7395,10 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand" " vr, 0, vr, 0, 0, vr, 0, vr, vr")
- (match_operand:VF 5 "register_operand" " vr, vr, 0, 0, vr, 0, 0, vr, vr")])
+ [(match_operand:V_VLSF 4 "register_operand" " vr, 0, vr, 0, 0, vr, 0, vr, vr")
+ (match_operand:V_VLSF 5 "register_operand" " vr, vr, 0, 0, vr, 0, 0, vr, vr")])
(match_operand:<VM> 2 "vector_merge_operand" " vu, vu, vu, vu, 0, 0, 0, vu, 0")))]
- "TARGET_VECTOR && known_gt (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_gt_one (<MODE>mode)"
"vmf%B3.vv\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7257,8 +7414,8 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand")
- (vec_duplicate:VF
+ [(match_operand:V_VLSF 4 "register_operand")
+ (vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand"))])
(match_operand:<VM> 2 "vector_merge_operand")))]
"TARGET_VECTOR"
@@ -7275,8 +7432,8 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 2 "signed_order_operator"
- [(match_operand:VF 3 "register_operand" " vr")
- (vec_duplicate:VF
+ [(match_operand:V_VLSF 3 "register_operand" " vr")
+ (vec_duplicate:V_VLSF
(match_operand:<VEL> 4 "register_operand" " f"))])
(match_dup 1)))]
"TARGET_VECTOR"
@@ -7300,11 +7457,11 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand" " vr, vr")
- (vec_duplicate:VF
+ [(match_operand:V_VLSF 4 "register_operand" " vr, vr")
+ (vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand" " f, f"))])
(match_operand:<VM> 2 "vector_merge_operand" " vu, 0")))]
- "TARGET_VECTOR && known_le (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_le_one (<MODE>mode)"
"vmf%B3.vf\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7321,11 +7478,11 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "signed_order_operator"
- [(match_operand:VF 4 "register_operand" " vr, 0, 0, vr, vr")
- (vec_duplicate:VF
+ [(match_operand:V_VLSF 4 "register_operand" " vr, 0, 0, vr, vr")
+ (vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand" " f, f, f, f, f"))])
(match_operand:<VM> 2 "vector_merge_operand" " vu, vu, 0, vu, 0")))]
- "TARGET_VECTOR && known_gt (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_gt_one (<MODE>mode)"
"vmf%B3.vf\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7341,9 +7498,9 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "equality_operator"
- [(vec_duplicate:VF
+ [(vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand"))
- (match_operand:VF 4 "register_operand")])
+ (match_operand:V_VLSF 4 "register_operand")])
(match_operand:<VM> 2 "vector_merge_operand")))]
"TARGET_VECTOR"
{})
@@ -7359,9 +7516,9 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 2 "equality_operator"
- [(vec_duplicate:VF
+ [(vec_duplicate:V_VLSF
(match_operand:<VEL> 4 "register_operand" " f"))
- (match_operand:VF 3 "register_operand" " vr")])
+ (match_operand:V_VLSF 3 "register_operand" " vr")])
(match_dup 1)))]
"TARGET_VECTOR"
"vmf%B2.vf\t%0,%3,%4,v0.t"
@@ -7384,11 +7541,11 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "equality_operator"
- [(vec_duplicate:VF
+ [(vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand" " f, f"))
- (match_operand:VF 4 "register_operand" " vr, vr")])
+ (match_operand:V_VLSF 4 "register_operand" " vr, vr")])
(match_operand:<VM> 2 "vector_merge_operand" " vu, 0")))]
- "TARGET_VECTOR && known_le (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_le_one (<MODE>mode)"
"vmf%B3.vf\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7405,11 +7562,11 @@
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(match_operator:<VM> 3 "equality_operator"
- [(vec_duplicate:VF
+ [(vec_duplicate:V_VLSF
(match_operand:<VEL> 5 "register_operand" " f, f, f, f, f"))
- (match_operand:VF 4 "register_operand" " vr, 0, 0, vr, vr")])
+ (match_operand:V_VLSF 4 "register_operand" " vr, 0, 0, vr, vr")])
(match_operand:<VM> 2 "vector_merge_operand" " vu, vu, 0, vu, 0")))]
- "TARGET_VECTOR && known_gt (GET_MODE_SIZE (<MODE>mode), BYTES_PER_RISCV_VECTOR)"
+ "TARGET_VECTOR && riscv_vector::cmp_lmul_gt_one (<MODE>mode)"
"vmf%B3.vf\t%0,%4,%5%p1"
[(set_attr "type" "vfcmp")
(set_attr "mode" "<MODE>")])
@@ -7422,20 +7579,20 @@
;; -------------------------------------------------------------------------------
(define_insn "@pred_merge<mode>_scalar"
- [(set (match_operand:VF 0 "register_operand" "=vd,vd")
- (if_then_else:VF
+ [(set (match_operand:V_VLSF 0 "register_operand" "=vd,vd")
+ (if_then_else:V_VLSF
(unspec:<VM>
[(match_operand 5 "vector_length_operand" " rK,rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (vec_merge:VF
- (vec_duplicate:VF
+ (vec_merge:V_VLSF
+ (vec_duplicate:V_VLSF
(match_operand:<VEL> 3 "register_operand" " f, f"))
- (match_operand:VF 2 "register_operand" " vr,vr")
+ (match_operand:V_VLSF 2 "register_operand" " vr,vr")
(match_operand:<VM> 4 "register_operand" " vm,vm"))
- (match_operand:VF 1 "vector_merge_operand" " vu, 0")))]
+ (match_operand:V_VLSF 1 "vector_merge_operand" " vu, 0")))]
"TARGET_VECTOR"
"vfmerge.vfm\t%0,%2,%3,%4"
[(set_attr "type" "vfmerge")
@@ -7725,359 +7882,116 @@
;; - 14.4 Vector Widening Floating-Point Reduction Instructions
;; -------------------------------------------------------------------------------
-;; For reduction operations, we should have seperate patterns for
-;; different types. For each type, we will cover MIN_VLEN == 32, MIN_VLEN == 64
-;; and the MIN_VLEN >= 128 from the well defined iterators.
-;; Since reduction need LMUL = 1 scalar operand as the input operand
-;; and they are different.
-
-;; Integer Reduction for QI
-(define_insn "@pred_reduc_<reduc><VQI:mode><VQI_LMUL1:mode>"
- [(set (match_operand:VQI_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VQI_LMUL1
- [(unspec:<VQI:VM>
- [(match_operand:<VQI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VQI
- (vec_duplicate:VQI
- (vec_select:<VEL>
- (match_operand:VQI_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VQI 3 "register_operand" " vr, vr"))
- (match_operand:VQI_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
- "TARGET_VECTOR"
- "vred<reduc>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vired")
- (set_attr "mode" "<VQI:MODE>")])
-
-;; Integer Reduction for HI
-(define_insn "@pred_reduc_<reduc><VHI:mode><VHI_LMUL1:mode>"
- [(set (match_operand:VHI_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VHI_LMUL1
- [(unspec:<VHI:VM>
- [(match_operand:<VHI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VHI
- (vec_duplicate:VHI
- (vec_select:<VEL>
- (match_operand:VHI_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VHI 3 "register_operand" " vr, vr"))
- (match_operand:VHI_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
- "TARGET_VECTOR"
- "vred<reduc>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vired")
- (set_attr "mode" "<VHI:MODE>")])
-
-;; Integer Reduction for SI
-(define_insn "@pred_reduc_<reduc><VSI:mode><VSI_LMUL1:mode>"
- [(set (match_operand:VSI_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VSI_LMUL1
- [(unspec:<VSI:VM>
- [(match_operand:<VSI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VSI
- (vec_duplicate:VSI
- (vec_select:<VEL>
- (match_operand:VSI_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VSI 3 "register_operand" " vr, vr"))
- (match_operand:VSI_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
- "TARGET_VECTOR"
- "vred<reduc>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vired")
- (set_attr "mode" "<VSI:MODE>")])
-
-;; Integer Reduction for DI
-(define_insn "@pred_reduc_<reduc><VDI:mode><VDI_LMUL1:mode>"
- [(set (match_operand:VDI_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VDI_LMUL1
- [(unspec:<VDI:VM>
- [(match_operand:<VDI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
+;; Integer Reduction (vred(sum|maxu|max|minu|min|and|or|xor).vs)
+(define_insn "@pred_<reduc_op><mode>"
+ [(set (match_operand:<V_LMUL1> 0 "register_operand" "=vr, vr")
+ (unspec:<V_LMUL1>
+ [(unspec:<VM>
+ [(match_operand:<VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
(match_operand 5 "vector_length_operand" " rK, rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VDI
- (vec_duplicate:VDI
- (vec_select:<VEL>
- (match_operand:VDI_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VDI 3 "register_operand" " vr, vr"))
- (match_operand:VDI_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
+ (unspec:<V_LMUL1> [
+ (match_operand:V_VLSI 3 "register_operand" " vr, vr")
+ (match_operand:<V_LMUL1> 4 "register_operand" " vr, vr")
+ ] ANY_REDUC)
+ (match_operand:<V_LMUL1> 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
"TARGET_VECTOR"
- "vred<reduc>.vs\t%0,%3,%4%p1"
+ "v<reduc_op>.vs\t%0,%3,%4%p1"
[(set_attr "type" "vired")
- (set_attr "mode" "<VDI:MODE>")])
-
-;; Integer Reduction Widen for QI, HI = QI op HI
-(define_insn "@pred_widen_reduc_plus<v_su><VQI:mode><VHI_LMUL1:mode>"
- [(set (match_operand:VHI_LMUL1 0 "register_operand" "=&vr,&vr")
- (unspec:VHI_LMUL1
- [(unspec:<VQI:VM>
- [(match_operand:<VQI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VQI 3 "register_operand" " vr, vr")
- (match_operand:VHI_LMUL1 4 "register_operand" " vr, vr")
- (match_operand:VHI_LMUL1 2 "vector_merge_operand" " vu, 0")] WREDUC))]
- "TARGET_VECTOR"
- "vwredsum<v_su>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "viwred")
- (set_attr "mode" "<VQI:MODE>")])
+ (set_attr "mode" "<MODE>")])
-;; Integer Reduction Widen for HI, SI = HI op SI
-(define_insn "@pred_widen_reduc_plus<v_su><VHI:mode><VSI_LMUL1:mode>"
- [(set (match_operand:VSI_LMUL1 0 "register_operand" "=&vr,&vr")
- (unspec:VSI_LMUL1
- [(unspec:<VHI:VM>
- [(match_operand:<VHI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
+;; Integer Widen Reduction Sum (vwredsum[u].vs)
+(define_insn "@pred_<reduc_op><mode>"
+ [(set (match_operand:<V_EXT_LMUL1> 0 "register_operand" "=&vr,&vr")
+ (unspec:<V_EXT_LMUL1>
+ [(unspec:<VM>
+ [(match_operand:<VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
+ (match_operand 5 "vector_length_operand" " rK, rK")
+ (match_operand 6 "const_int_operand" " i, i")
+ (match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VHI 3 "register_operand" " vr, vr")
- (match_operand:VSI_LMUL1 4 "register_operand" " vr, vr")
- (match_operand:VSI_LMUL1 2 "vector_merge_operand" " vu, 0")] WREDUC))]
+ (unspec:<V_EXT_LMUL1> [
+ (match_operand:VI_QHS 3 "register_operand" " vr, vr")
+ (match_operand:<V_EXT_LMUL1> 4 "register_operand" " vr, vr")
+ ] ANY_WREDUC)
+ (match_operand:<V_EXT_LMUL1> 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
"TARGET_VECTOR"
- "vwredsum<v_su>.vs\t%0,%3,%4%p1"
+ "v<reduc_op>.vs\t%0,%3,%4%p1"
[(set_attr "type" "viwred")
- (set_attr "mode" "<VHI:MODE>")])
+ (set_attr "mode" "<MODE>")])
-;; Integer Reduction Widen for SI, DI = SI op DI
-(define_insn "@pred_widen_reduc_plus<v_su><VSI:mode><VDI_LMUL1:mode>"
- [(set (match_operand:VDI_LMUL1 0 "register_operand" "=&vr,&vr")
- (unspec:VDI_LMUL1
- [(unspec:<VSI:VM>
- [(match_operand:<VSI:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VSI 3 "register_operand" " vr, vr")
- (match_operand:VDI_LMUL1 4 "register_operand" " vr, vr")
- (match_operand:VDI_LMUL1 2 "vector_merge_operand" " vu, 0")] WREDUC))]
- "TARGET_VECTOR"
- "vwredsum<v_su>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "viwred")
- (set_attr "mode" "<VSI:MODE>")])
-
-;; Float Reduction for HF
-(define_insn "@pred_reduc_<reduc><VHF:mode><VHF_LMUL1:mode>"
- [(set (match_operand:VHF_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VHF_LMUL1
- [(unspec:<VHF:VM>
- [(match_operand:<VHF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
+;; Float Reduction (vfred(max|min).vs)
+(define_insn "@pred_<reduc_op><mode>"
+ [(set (match_operand:<V_LMUL1> 0 "register_operand" "=vr, vr")
+ (unspec:<V_LMUL1>
+ [(unspec:<VM>
+ [(match_operand:<VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
(match_operand 5 "vector_length_operand" " rK, rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VHF
- (vec_duplicate:VHF
- (vec_select:<VEL>
- (match_operand:VHF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VHF 3 "register_operand" " vr, vr"))
- (match_operand:VHF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
+ (unspec:<V_LMUL1> [
+ (match_operand:V_VLSF 3 "register_operand" " vr, vr")
+ (match_operand:<V_LMUL1> 4 "register_operand" " vr, vr")
+ ] ANY_FREDUC)
+ (match_operand:<V_LMUL1> 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
"TARGET_VECTOR"
- "vfred<reduc>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vfredu")
- (set_attr "mode" "<VHF:MODE>")])
-
-;; Float Reduction for SF
-(define_insn "@pred_reduc_<reduc><VSF:mode><VSF_LMUL1:mode>"
- [(set (match_operand:VSF_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VSF_LMUL1
- [(unspec:<VSF:VM>
- [(match_operand:<VSF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VSF
- (vec_duplicate:VSF
- (vec_select:<VEL>
- (match_operand:VSF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VSF 3 "register_operand" " vr, vr"))
- (match_operand:VSF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
- "TARGET_VECTOR"
- "vfred<reduc>.vs\t%0,%3,%4%p1"
+ "vf<reduc_op>.vs\t%0,%3,%4%p1"
[(set_attr "type" "vfredu")
- (set_attr "mode" "<VSF:MODE>")])
-
-;; Float Reduction for DF
-(define_insn "@pred_reduc_<reduc><VDF:mode><VDF_LMUL1:mode>"
- [(set (match_operand:VDF_LMUL1 0 "register_operand" "=vr, vr")
- (unspec:VDF_LMUL1
- [(unspec:<VDF:VM>
- [(match_operand:<VDF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
+ (set_attr "mode" "<MODE>")])
+
+;; Float Reduction Sum (vfred[ou]sum.vs)
+(define_insn "@pred_<reduc_op><mode>"
+ [(set (match_operand:<V_LMUL1> 0 "register_operand" "=vr,vr")
+ (unspec:<V_LMUL1>
+ [(unspec:<VM>
+ [(match_operand:<VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
(match_operand 5 "vector_length_operand" " rK, rK")
(match_operand 6 "const_int_operand" " i, i")
(match_operand 7 "const_int_operand" " i, i")
+ (match_operand 8 "const_int_operand" " i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (any_reduc:VDF
- (vec_duplicate:VDF
- (vec_select:<VEL>
- (match_operand:VDF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VDF 3 "register_operand" " vr, vr"))
- (match_operand:VDF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
+ (reg:SI VTYPE_REGNUM)
+ (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
+ (unspec:<V_LMUL1> [
+ (match_operand:V_VLSF 3 "register_operand" " vr, vr")
+ (match_operand:<V_LMUL1> 4 "register_operand" " vr, vr")
+ ] ANY_FREDUC_SUM)
+ (match_operand:<V_LMUL1> 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
"TARGET_VECTOR"
- "vfred<reduc>.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vfredu")
- (set_attr "mode" "<VDF:MODE>")])
-
-;; Float Ordered Reduction Sum for HF
-(define_insn "@pred_reduc_plus<order><VHF:mode><VHF_LMUL1:mode>"
- [(set (match_operand:VHF_LMUL1 0 "register_operand" "=vr,vr")
- (unspec:VHF_LMUL1
- [(unspec:VHF_LMUL1
- [(unspec:<VHF:VM>
- [(match_operand:<VHF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (match_operand 8 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
- (plus:VHF
- (vec_duplicate:VHF
- (vec_select:<VEL>
- (match_operand:VHF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VHF 3 "register_operand" " vr, vr"))
- (match_operand:VHF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC)] ORDER))]
- "TARGET_VECTOR"
- "vfred<order>sum.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vfred<order>")
- (set_attr "mode" "<VHF:MODE>")
- (set (attr "frm_mode")
- (symbol_ref "riscv_vector::get_frm_mode (operands[8])"))])
-
-;; Float Ordered Reduction Sum for SF
-(define_insn "@pred_reduc_plus<order><VSF:mode><VSF_LMUL1:mode>"
- [(set (match_operand:VSF_LMUL1 0 "register_operand" "=vr,vr")
- (unspec:VSF_LMUL1
- [(unspec:VSF_LMUL1
- [(unspec:<VSF:VM>
- [(match_operand:<VSF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (match_operand 8 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
- (plus:VSF
- (vec_duplicate:VSF
- (vec_select:<VEL>
- (match_operand:VSF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VSF 3 "register_operand" " vr, vr"))
- (match_operand:VSF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC)] ORDER))]
- "TARGET_VECTOR"
- "vfred<order>sum.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vfred<order>")
- (set_attr "mode" "<VSF:MODE>")
- (set (attr "frm_mode")
- (symbol_ref "riscv_vector::get_frm_mode (operands[8])"))])
-
-;; Float Ordered Reduction Sum for DF
-(define_insn "@pred_reduc_plus<order><VDF:mode><VDF_LMUL1:mode>"
- [(set (match_operand:VDF_LMUL1 0 "register_operand" "=vr,vr")
- (unspec:VDF_LMUL1
- [(unspec:VDF_LMUL1
- [(unspec:<VDF:VM>
- [(match_operand:<VDF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (match_operand 8 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
- (plus:VDF
- (vec_duplicate:VDF
- (vec_select:<VEL>
- (match_operand:VDF_LMUL1 4 "register_operand" " vr, vr")
- (parallel [(const_int 0)])))
- (match_operand:VDF 3 "register_operand" " vr, vr"))
- (match_operand:VDF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC)] ORDER))]
- "TARGET_VECTOR"
- "vfred<order>sum.vs\t%0,%3,%4%p1"
+ "vf<reduc_op>.vs\t%0,%3,%4%p1"
[(set_attr "type" "vfred<order>")
- (set_attr "mode" "<VDF:MODE>")
- (set (attr "frm_mode")
- (symbol_ref "riscv_vector::get_frm_mode (operands[8])"))])
-
-;; Float Widen Reduction for HF, aka SF = HF op SF
-(define_insn "@pred_widen_reduc_plus<order><VHF:mode><VSF_LMUL1:mode>"
- [(set (match_operand:VSF_LMUL1 0 "register_operand" "=&vr, &vr")
- (unspec:VSF_LMUL1
- [(unspec:VSF_LMUL1
- [(unspec:<VHF:VM>
- [(match_operand:<VHF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (match_operand 8 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VHF 3 "register_operand" " vr, vr")
- (match_operand:VSF_LMUL1 4 "register_operand" " vr, vr")
- (match_operand:VSF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_WREDUC_SUM)] ORDER))]
- "TARGET_VECTOR"
- "vfwred<order>sum.vs\t%0,%3,%4%p1"
- [(set_attr "type" "vfwred<order>")
- (set_attr "mode" "<VHF:MODE>")
+ (set_attr "mode" "<MODE>")
(set (attr "frm_mode")
(symbol_ref "riscv_vector::get_frm_mode (operands[8])"))])
-;; Float Widen Reduction for SF, aka DF = SF * DF
-(define_insn "@pred_widen_reduc_plus<order><VSF:mode><VDF_LMUL1:mode>"
- [(set (match_operand:VDF_LMUL1 0 "register_operand" "=&vr, &vr")
- (unspec:VDF_LMUL1
- [(unspec:VDF_LMUL1
- [(unspec:<VSF:VM>
- [(match_operand:<VSF:VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
- (match_operand 5 "vector_length_operand" " rK, rK")
- (match_operand 6 "const_int_operand" " i, i")
- (match_operand 7 "const_int_operand" " i, i")
- (match_operand 8 "const_int_operand" " i, i")
- (reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VSF 3 "register_operand" " vr, vr")
- (match_operand:VDF_LMUL1 4 "register_operand" " vr, vr")
- (match_operand:VDF_LMUL1 2 "vector_merge_operand" " vu, 0")] UNSPEC_WREDUC_SUM)] ORDER))]
+;; Float Widen Reduction Sum (vfwred[ou]sum.vs)
+(define_insn "@pred_<reduc_op><mode>"
+ [(set (match_operand:<V_EXT_LMUL1> 0 "register_operand" "=&vr, &vr")
+ (unspec:<V_EXT_LMUL1>
+ [(unspec:<VM>
+ [(match_operand:<VM> 1 "vector_mask_operand" "vmWc1,vmWc1")
+ (match_operand 5 "vector_length_operand" " rK, rK")
+ (match_operand 6 "const_int_operand" " i, i")
+ (match_operand 7 "const_int_operand" " i, i")
+ (match_operand 8 "const_int_operand" " i, i")
+ (reg:SI VL_REGNUM)
+ (reg:SI VTYPE_REGNUM)
+ (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
+ (unspec:<V_EXT_LMUL1> [
+ (match_operand:VF_HS 3 "register_operand" " vr, vr")
+ (match_operand:<V_EXT_LMUL1> 4 "register_operand" " vr, vr")
+ ] ANY_FWREDUC_SUM)
+ (match_operand:<V_EXT_LMUL1> 2 "vector_merge_operand" " vu, 0")] UNSPEC_REDUC))]
"TARGET_VECTOR"
- "vfwred<order>sum.vs\t%0,%3,%4%p1"
+ "vf<reduc_op>.vs\t%0,%3,%4%p1"
[(set_attr "type" "vfwred<order>")
- (set_attr "mode" "<VSF:MODE>")
+ (set_attr "mode" "<MODE>")
(set (attr "frm_mode")
(symbol_ref "riscv_vector::get_frm_mode (operands[8])"))])
@@ -8096,7 +8010,7 @@
[(set (match_operand:<VEL> 0 "register_operand")
(unspec:<VEL>
[(vec_select:<VEL>
- (match_operand:VI 1 "reg_or_mem_operand")
+ (match_operand:V_VLSI 1 "reg_or_mem_operand")
(parallel [(const_int 0)]))
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE))]
"TARGET_VECTOR"
@@ -8113,7 +8027,7 @@
[(set (match_operand:<VEL> 0 "register_operand" "=r")
(unspec:<VEL>
[(vec_select:<VEL>
- (match_operand:VI 1 "register_operand" "vr")
+ (match_operand:V_VLSI 1 "register_operand" "vr")
(parallel [(const_int 0)]))
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE))]
"TARGET_VECTOR"
@@ -8147,7 +8061,7 @@
(truncate:SI
(unspec:<VEL>
[(vec_select:<VEL>
- (match_operand:VI_D 1 "register_operand" "vr")
+ (match_operand:V_VLSI_D 1 "register_operand" "vr")
(parallel [(const_int 0)]))
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)))]
"TARGET_VECTOR"
@@ -8159,7 +8073,7 @@
[(set (match_operand:<VEL> 0 "register_operand")
(unspec:<VEL>
[(vec_select:<VEL>
- (match_operand:VF 1 "reg_or_mem_operand")
+ (match_operand:V_VLSF 1 "reg_or_mem_operand")
(parallel [(const_int 0)]))
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE))]
"TARGET_VECTOR"
@@ -8176,7 +8090,7 @@
[(set (match_operand:<VEL> 0 "register_operand" "=f")
(unspec:<VEL>
[(vec_select:<VEL>
- (match_operand:VF 1 "register_operand" "vr")
+ (match_operand:V_VLSF 1 "register_operand" "vr")
(parallel [(const_int 0)]))
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE))]
"TARGET_VECTOR"
@@ -8287,8 +8201,8 @@
;; vfslide1 instructions
(define_insn "@pred_slide<ud><mode>"
- [(set (match_operand:VF 0 "register_operand" "<ud_constraint>")
- (unspec:VF
+ [(set (match_operand:V_VLSF 0 "register_operand" "<ud_constraint>")
+ (unspec:V_VLSF
[(unspec:<VM>
[(match_operand:<VM> 1 "vector_mask_operand" " vm, vm,Wc1,Wc1")
(match_operand 5 "vector_length_operand" " rK, rK, rK, rK")
@@ -8297,8 +8211,8 @@
(match_operand 8 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
(reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
- (match_operand:VF 2 "vector_merge_operand" " vu, 0, vu, 0")
- (match_operand:VF 3 "register_operand" " vr, vr, vr, vr")
+ (match_operand:V_VLSF 2 "vector_merge_operand" " vu, 0, vu, 0")
+ (match_operand:V_VLSF 3 "register_operand" " vr, vr, vr, vr")
(match_operand:<VEL> 4 "register_operand" " f, f, f, f")] VFSLIDES1))]
"TARGET_VECTOR"
"vfslide<ud>.vf\t%0,%3,%4%p1"
@@ -8783,4 +8697,3 @@
(include "autovec.md")
(include "autovec-opt.md")
-(include "autovec-vls.md")
diff --git a/gcc/config/riscv/zc.md b/gcc/config/riscv/zc.md
index 77b28ad..18b3c30 100644
--- a/gcc/config/riscv/zc.md
+++ b/gcc/config/riscv/zc.md
@@ -27,7 +27,7 @@
(const_int <slot0_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s0_<mode>"
[(set (reg:X SP_REGNUM)
@@ -41,7 +41,7 @@
(const_int <slot1_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s1_<mode>"
[(set (reg:X SP_REGNUM)
@@ -58,7 +58,7 @@
(const_int <slot2_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s1}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s2_<mode>"
[(set (reg:X SP_REGNUM)
@@ -78,7 +78,7 @@
(const_int <slot3_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s2}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s3_<mode>"
[(set (reg:X SP_REGNUM)
@@ -101,7 +101,7 @@
(const_int <slot4_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s3}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s4_<mode>"
[(set (reg:X SP_REGNUM)
@@ -127,7 +127,7 @@
(const_int <slot5_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s4}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s5_<mode>"
[(set (reg:X SP_REGNUM)
@@ -156,7 +156,7 @@
(const_int <slot6_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s5}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s6_<mode>"
[(set (reg:X SP_REGNUM)
@@ -188,7 +188,7 @@
(const_int <slot7_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s6}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s7_<mode>"
[(set (reg:X SP_REGNUM)
@@ -223,7 +223,7 @@
(const_int <slot8_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s7}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s8_<mode>"
[(set (reg:X SP_REGNUM)
@@ -261,7 +261,7 @@
(const_int <slot9_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s8}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s9_<mode>"
[(set (reg:X SP_REGNUM)
@@ -302,7 +302,7 @@
(const_int <slot10_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s9}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_pop_up_to_s11_<mode>"
[(set (reg:X SP_REGNUM)
@@ -349,7 +349,7 @@
(const_int <slot12_offset>))))]
"TARGET_ZCMP"
"cm.pop {ra, s0-s11}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_ra_<mode>"
[(set (reg:X SP_REGNUM)
@@ -362,7 +362,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s0_<mode>"
[(set (reg:X SP_REGNUM)
@@ -378,7 +378,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s1_<mode>"
[(set (reg:X SP_REGNUM)
@@ -397,7 +397,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s1}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s2_<mode>"
[(set (reg:X SP_REGNUM)
@@ -419,7 +419,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s2}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s3_<mode>"
[(set (reg:X SP_REGNUM)
@@ -444,7 +444,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s3}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s4_<mode>"
[(set (reg:X SP_REGNUM)
@@ -472,7 +472,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s4}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s5_<mode>"
[(set (reg:X SP_REGNUM)
@@ -503,7 +503,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s5}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s6_<mode>"
[(set (reg:X SP_REGNUM)
@@ -537,7 +537,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s6}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s7_<mode>"
[(set (reg:X SP_REGNUM)
@@ -574,7 +574,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s7}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s8_<mode>"
[(set (reg:X SP_REGNUM)
@@ -614,7 +614,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s8}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s9_<mode>"
[(set (reg:X SP_REGNUM)
@@ -657,7 +657,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s9}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popret_up_to_s11_<mode>"
[(set (reg:X SP_REGNUM)
@@ -706,7 +706,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popret {ra, s0-s11}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_ra_<mode>"
[(set (reg:X SP_REGNUM)
@@ -722,7 +722,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s0_<mode>"
[(set (reg:X SP_REGNUM)
@@ -741,7 +741,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s1_<mode>"
[(set (reg:X SP_REGNUM)
@@ -763,7 +763,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s1}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s2_<mode>"
[(set (reg:X SP_REGNUM)
@@ -788,7 +788,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s2}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s3_<mode>"
[(set (reg:X SP_REGNUM)
@@ -816,7 +816,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s3}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s4_<mode>"
[(set (reg:X SP_REGNUM)
@@ -847,7 +847,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s4}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s5_<mode>"
[(set (reg:X SP_REGNUM)
@@ -881,7 +881,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s5}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s6_<mode>"
[(set (reg:X SP_REGNUM)
@@ -918,7 +918,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s6}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s7_<mode>"
[(set (reg:X SP_REGNUM)
@@ -958,7 +958,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s7}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s8_<mode>"
[(set (reg:X SP_REGNUM)
@@ -1001,7 +1001,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s8}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s9_<mode>"
[(set (reg:X SP_REGNUM)
@@ -1047,7 +1047,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s9}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_popretz_up_to_s11_<mode>"
[(set (reg:X SP_REGNUM)
@@ -1099,7 +1099,7 @@
(use (reg:SI RETURN_ADDR_REGNUM))]
"TARGET_ZCMP"
"cm.popretz {ra, s0-s11}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_ra_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1110,7 +1110,7 @@
(match_operand 0 "stack_push_up_to_ra_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s0_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1124,7 +1124,7 @@
(match_operand 0 "stack_push_up_to_s0_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s1_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1141,7 +1141,7 @@
(match_operand 0 "stack_push_up_to_s1_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s1}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s2_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1161,7 +1161,7 @@
(match_operand 0 "stack_push_up_to_s2_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s2}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s3_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1184,7 +1184,7 @@
(match_operand 0 "stack_push_up_to_s3_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s3}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s4_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1210,7 +1210,7 @@
(match_operand 0 "stack_push_up_to_s4_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s4}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s5_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1239,7 +1239,7 @@
(match_operand 0 "stack_push_up_to_s5_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s5}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s6_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1271,7 +1271,7 @@
(match_operand 0 "stack_push_up_to_s6_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s6}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s7_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1306,7 +1306,7 @@
(match_operand 0 "stack_push_up_to_s7_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s7}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s8_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1344,7 +1344,7 @@
(match_operand 0 "stack_push_up_to_s8_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s8}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s9_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1385,7 +1385,7 @@
(match_operand 0 "stack_push_up_to_s9_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s9}, %0"
-)
+[(set_attr "type" "pushpop")])
(define_insn "@gpr_multi_push_up_to_s11_<mode>"
[(set (mem:X (plus:X (reg:X SP_REGNUM)
@@ -1432,7 +1432,7 @@
(match_operand 0 "stack_push_up_to_s11_operand" "I")))]
"TARGET_ZCMP"
"cm.push {ra, s0-s11}, %0"
-)
+[(set_attr "type" "pushpop")])
;; ZCMP mv
(define_insn "*mva01s<X:mode>"
@@ -1443,7 +1443,8 @@
"TARGET_ZCMP
&& (REGNO (operands[2]) != REGNO (operands[0]))"
{ return (REGNO (operands[0]) == A0_REGNUM)?"cm.mva01s\t%1,%3":"cm.mva01s\t%3,%1"; }
- [(set_attr "mode" "<X:MODE>")])
+ [(set_attr "mode" "<X:MODE>")
+ (set_attr "type" "mvpair")])
(define_insn "*mvsa01<X:mode>"
[(set (match_operand:X 0 "zcmp_mv_sreg_operand" "=r")
@@ -1454,4 +1455,5 @@
&& (REGNO (operands[0]) != REGNO (operands[2]))
&& (REGNO (operands[1]) != REGNO (operands[3]))"
{ return (REGNO (operands[1]) == A0_REGNUM)?"cm.mvsa01\t%0,%2":"cm.mvsa01\t%2,%0"; }
- [(set_attr "mode" "<X:MODE>")])
+ [(set_attr "mode" "<X:MODE>")
+ (set_attr "type" "mvpair")])
diff --git a/gcc/config/riscv/zicond.md b/gcc/config/riscv/zicond.md
index 6627be3..05e7348 100644
--- a/gcc/config/riscv/zicond.md
+++ b/gcc/config/riscv/zicond.md
@@ -40,7 +40,7 @@
else
gcc_unreachable ();
}
-)
+[(set_attr "type" "zicond")])
(define_insn "*czero.<nez>.<GPR:mode><X:mode>"
[(set (match_operand:GPR 0 "register_operand" "=r")
@@ -57,7 +57,7 @@
else
gcc_unreachable ();
}
-)
+[(set_attr "type" "zicond")])
;; Special optimization under eq/ne in primitive semantics
(define_insn "*czero.eqz.<GPR:mode><X:mode>.opt1"
@@ -75,7 +75,7 @@
else
gcc_unreachable ();
}
-)
+[(set_attr "type" "zicond")])
(define_insn "*czero.nez.<GPR:mode><X:mode>.opt2"
[(set (match_operand:GPR 0 "register_operand" "=r")
@@ -92,7 +92,7 @@
else
gcc_unreachable ();
}
-)
+[(set_attr "type" "zicond")])
;; Combine creates this form in some cases (particularly the coremark
;; CRC loop).
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index 19abfeb..4de41e7 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -5846,11 +5846,22 @@
[(set_attr "type" "vecsimple")])
;; Vector Count Trailing Zero Least-Significant Bits Byte
-(define_insn "vctzlsbb_<mode>"
- [(set (match_operand:SI 0 "register_operand" "=r")
+(define_insn "*vctzlsbb_zext_<mode>"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (zero_extend:DI
(unspec:SI
[(match_operand:VSX_EXTRACT_I 1 "altivec_register_operand" "v")]
- UNSPEC_VCTZLSBB))]
+ UNSPEC_VCTZLSBB)))]
+ "TARGET_P9_VECTOR"
+ "vctzlsbb %0,%1"
+ [(set_attr "type" "vecsimple")])
+
+;; Vector Count Trailing Zero Least-Significant Bits Byte
+(define_insn "vctzlsbb_<mode>"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (unspec:SI
+ [(match_operand:VSX_EXTRACT_I 1 "altivec_register_operand" "v")]
+ UNSPEC_VCTZLSBB))]
"TARGET_P9_VECTOR"
"vctzlsbb %0,%1"
[(set_attr "type" "vecsimple")])
diff --git a/gcc/config/s390/s390-builtins.def b/gcc/config/s390/s390-builtins.def
index a16983b..964d86c 100644
--- a/gcc/config/s390/s390-builtins.def
+++ b/gcc/config/s390/s390-builtins.def
@@ -28,6 +28,7 @@
#undef O_U12
#undef O_U16
#undef O_U32
+#undef O_U64
#undef O_M12
@@ -88,6 +89,11 @@
#undef O3_U32
#undef O4_U32
+#undef O1_U64
+#undef O2_U64
+#undef O3_U64
+#undef O4_U64
+
#undef O1_M12
#undef O2_M12
#undef O3_M12
@@ -157,20 +163,21 @@
#define O_U12 7 /* unsigned 16 bit literal */
#define O_U16 8 /* unsigned 16 bit literal */
#define O_U32 9 /* unsigned 32 bit literal */
+#define O_U64 10 /* unsigned 64 bit literal */
-#define O_M12 10 /* matches bitmask of 12 */
+#define O_M12 11 /* matches bitmask of 12 */
-#define O_S2 11 /* signed 2 bit literal */
-#define O_S3 12 /* signed 3 bit literal */
-#define O_S4 13 /* signed 4 bit literal */
-#define O_S5 14 /* signed 5 bit literal */
-#define O_S8 15 /* signed 8 bit literal */
-#define O_S12 16 /* signed 12 bit literal */
-#define O_S16 17 /* signed 16 bit literal */
-#define O_S32 18 /* signed 32 bit literal */
+#define O_S2 12 /* signed 2 bit literal */
+#define O_S3 13 /* signed 3 bit literal */
+#define O_S4 14 /* signed 4 bit literal */
+#define O_S5 15 /* signed 5 bit literal */
+#define O_S8 16 /* signed 8 bit literal */
+#define O_S12 17 /* signed 12 bit literal */
+#define O_S16 18 /* signed 16 bit literal */
+#define O_S32 19 /* signed 32 bit literal */
-#define O_ELEM 19 /* Element selector requiring modulo arithmetic. */
-#define O_LIT 20 /* Operand must be a literal fitting the target type. */
+#define O_ELEM 20 /* Element selector requiring modulo arithmetic. */
+#define O_LIT 21 /* Operand must be a literal fitting the target type. */
#define O_SHIFT 5
@@ -223,6 +230,11 @@
#define O3_U32 (O_U32 << (2 * O_SHIFT))
#define O4_U32 (O_U32 << (3 * O_SHIFT))
+#define O1_U64 O_U64
+#define O2_U64 (O_U64 << O_SHIFT)
+#define O3_U64 (O_U64 << (2 * O_SHIFT))
+#define O4_U64 (O_U64 << (3 * O_SHIFT))
+
#define O1_M12 O_M12
#define O2_M12 (O_M12 << O_SHIFT)
#define O3_M12 (O_M12 << (2 * O_SHIFT))
@@ -1989,19 +2001,19 @@ B_DEF (s390_verllvf, vrotlv4si3, 0,
B_DEF (s390_verllvg, vrotlv2di3, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UV2DI)
OB_DEF (s390_vec_rli, s390_vec_rli_u8, s390_vec_rli_s64, B_VX, BT_FN_OV4SI_OV4SI_ULONG)
-OB_DEF_VAR (s390_vec_rli_u8, s390_verllb, 0, 0, BT_OV_UV16QI_UV16QI_ULONG)
-OB_DEF_VAR (s390_vec_rli_s8, s390_verllb, 0, 0, BT_OV_V16QI_V16QI_ULONG)
-OB_DEF_VAR (s390_vec_rli_u16, s390_verllh, 0, 0, BT_OV_UV8HI_UV8HI_ULONG)
-OB_DEF_VAR (s390_vec_rli_s16, s390_verllh, 0, 0, BT_OV_V8HI_V8HI_ULONG)
-OB_DEF_VAR (s390_vec_rli_u32, s390_verllf, 0, 0, BT_OV_UV4SI_UV4SI_ULONG)
-OB_DEF_VAR (s390_vec_rli_s32, s390_verllf, 0, 0, BT_OV_V4SI_V4SI_ULONG)
-OB_DEF_VAR (s390_vec_rli_u64, s390_verllg, 0, 0, BT_OV_UV2DI_UV2DI_ULONG)
-OB_DEF_VAR (s390_vec_rli_s64, s390_verllg, 0, 0, BT_OV_V2DI_V2DI_ULONG)
-
-B_DEF (s390_verllb, rotlv16qi3, 0, B_VX, 0, BT_FN_UV16QI_UV16QI_UINT)
-B_DEF (s390_verllh, rotlv8hi3, 0, B_VX, 0, BT_FN_UV8HI_UV8HI_UINT)
-B_DEF (s390_verllf, rotlv4si3, 0, B_VX, 0, BT_FN_UV4SI_UV4SI_UINT)
-B_DEF (s390_verllg, rotlv2di3, 0, B_VX, 0, BT_FN_UV2DI_UV2DI_UINT)
+OB_DEF_VAR (s390_vec_rli_u8, s390_verllb, 0, O2_U64, BT_OV_UV16QI_UV16QI_ULONG)
+OB_DEF_VAR (s390_vec_rli_s8, s390_verllb, 0, O2_U64, BT_OV_V16QI_V16QI_ULONG)
+OB_DEF_VAR (s390_vec_rli_u16, s390_verllh, 0, O2_U64, BT_OV_UV8HI_UV8HI_ULONG)
+OB_DEF_VAR (s390_vec_rli_s16, s390_verllh, 0, O2_U64, BT_OV_V8HI_V8HI_ULONG)
+OB_DEF_VAR (s390_vec_rli_u32, s390_verllf, 0, O2_U64, BT_OV_UV4SI_UV4SI_ULONG)
+OB_DEF_VAR (s390_vec_rli_s32, s390_verllf, 0, O2_U64, BT_OV_V4SI_V4SI_ULONG)
+OB_DEF_VAR (s390_vec_rli_u64, s390_verllg, 0, O2_U64, BT_OV_UV2DI_UV2DI_ULONG)
+OB_DEF_VAR (s390_vec_rli_s64, s390_verllg, 0, O2_U64, BT_OV_V2DI_V2DI_ULONG)
+
+B_DEF (s390_verllb, rotlv16qi3, 0, B_VX, O2_U32, BT_FN_UV16QI_UV16QI_UINT)
+B_DEF (s390_verllh, rotlv8hi3, 0, B_VX, O2_U32, BT_FN_UV8HI_UV8HI_UINT)
+B_DEF (s390_verllf, rotlv4si3, 0, B_VX, O2_U32, BT_FN_UV4SI_UV4SI_UINT)
+B_DEF (s390_verllg, rotlv2di3, 0, B_VX, O2_U32, BT_FN_UV2DI_UV2DI_UINT)
OB_DEF (s390_vec_rl_mask, s390_vec_rl_mask_s8,s390_vec_rl_mask_u64,B_VX, BT_FN_OV4SI_OV4SI_OV4SI_UCHAR)
OB_DEF_VAR (s390_vec_rl_mask_s8, s390_verimb, 0, O3_U8, BT_OV_V16QI_V16QI_UV16QI_UCHAR)
@@ -2834,12 +2846,12 @@ B_DEF (s390_vcelfb, floatunsv4siv4sf2, 0,
B_DEF (s390_vcdlgb, floatunsv2div2df2, 0, B_VX, O2_U4 | O3_U3, BT_FN_V2DF_UV2DI)
OB_DEF (s390_vec_signed, s390_vec_signed_flt,s390_vec_signed_dbl,B_VX, BT_FN_OV4SI_OV4SI)
-OB_DEF_VAR (s390_vec_signed_flt, s390_vcfeb, 0, B_VXE2, BT_OV_V4SI_V4SF)
+OB_DEF_VAR (s390_vec_signed_flt, s390_vcfeb, B_VXE2, 0, BT_OV_V4SI_V4SF)
OB_DEF_VAR (s390_vec_signed_dbl, s390_vcgdb, 0, 0, BT_OV_V2DI_V2DF)
OB_DEF (s390_vec_unsigned, s390_vec_unsigned_flt,s390_vec_unsigned_dbl,B_VX, BT_FN_OV4SI_OV4SI)
-OB_DEF_VAR (s390_vec_unsigned_flt, s390_vclfeb, 0, B_VXE2, BT_OV_UV4SI_V4SF)
-OB_DEF_VAR (s390_vec_unsigned_dbl, s390_vclgdb, 0, 0, BT_OV_UV2DI_V2DF)
+OB_DEF_VAR (s390_vec_unsigned_flt, s390_vclfeb, B_VXE2, 0, BT_OV_UV4SI_V4SF)
+OB_DEF_VAR (s390_vec_unsigned_dbl, s390_vclgdb, 0, 0, BT_OV_UV2DI_V2DF)
B_DEF (s390_vcfeb, fix_truncv4sfv4si2, 0, B_VXE2, O2_U4 | O3_U3, BT_FN_V4SI_V4SF)
B_DEF (s390_vcgdb, fix_truncv2dfv2di2, 0, B_VX, O2_U4 | O3_U3, BT_FN_V2DI_V2DF)
@@ -2917,7 +2929,7 @@ OB_DEF_VAR (s390_vec_revb_s32, s390_vlbrf, 0,
OB_DEF_VAR (s390_vec_revb_u32, s390_vlbrf, 0, 0, BT_OV_UV4SI_UV4SI)
OB_DEF_VAR (s390_vec_revb_s64, s390_vlbrg, 0, 0, BT_OV_V2DI_V2DI)
OB_DEF_VAR (s390_vec_revb_u64, s390_vlbrg, 0, 0, BT_OV_UV2DI_UV2DI)
-OB_DEF_VAR (s390_vec_revb_flt, s390_vlbrf_flt, 0, B_VXE, BT_OV_V4SF_V4SF)
+OB_DEF_VAR (s390_vec_revb_flt, s390_vlbrf_flt, B_VXE, 0, BT_OV_V4SF_V4SF)
OB_DEF_VAR (s390_vec_revb_dbl, s390_vlbrg_dbl, 0, 0, BT_OV_V2DF_V2DF)
B_DEF (s390_vlbrh, bswapv8hi, 0, B_VX, 0, BT_FN_V8HI_V8HI)
@@ -2948,7 +2960,7 @@ OB_DEF_VAR (s390_vec_reve_u32, s390_vlerf, 0,
OB_DEF_VAR (s390_vec_reve_b64, s390_vlerg, 0, 0, BT_OV_BV2DI_BV2DI)
OB_DEF_VAR (s390_vec_reve_s64, s390_vlerg, 0, 0, BT_OV_V2DI_V2DI)
OB_DEF_VAR (s390_vec_reve_u64, s390_vlerg, 0, 0, BT_OV_UV2DI_UV2DI)
-OB_DEF_VAR (s390_vec_reve_flt, s390_vlerf_flt, 0, B_VXE, BT_OV_V4SF_V4SF)
+OB_DEF_VAR (s390_vec_reve_flt, s390_vlerf_flt, B_VXE, 0, BT_OV_V4SF_V4SF)
OB_DEF_VAR (s390_vec_reve_dbl, s390_vlerg_dbl, 0, 0, BT_OV_V2DF_V2DF)
B_DEF (s390_vlerb, eltswapv16qi, 0, B_VX, 0, BT_FN_V16QI_V16QI)
@@ -3025,10 +3037,10 @@ B_DEF (s390_vstrszf, vstrszv4si, 0,
/* arch 14 builtins */
-B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V4SF_V8HI_UINT)
-B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O3_U4, BT_FN_V4SF_V8HI_UINT)
+B_DEF (s390_vclfnhs, vclfnhs_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT)
+B_DEF (s390_vclfnls, vclfnls_v8hi, 0, B_NNPA, O2_U4, BT_FN_V4SF_V8HI_UINT)
-B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O4_U4, BT_FN_V8HI_V4SF_V4SF_UINT)
+B_DEF (s390_vcrnfs, vcrnfs_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V4SF_V4SF_UINT)
-B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V8HI_UINT)
-B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O3_U4, BT_FN_V8HI_V8HI_UINT)
+B_DEF (s390_vcfn, vcfn_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT)
+B_DEF (s390_vcnf, vcnf_v8hi, 0, B_NNPA, O2_U4, BT_FN_V8HI_V8HI_UINT)
diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc
index 49ab4fc..64f56d8 100644
--- a/gcc/config/s390/s390.cc
+++ b/gcc/config/s390/s390.cc
@@ -815,8 +815,8 @@ s390_const_operand_ok (tree arg, int argnum, int op_flags, tree decl)
{
if (O_UIMM_P (op_flags))
{
- unsigned HOST_WIDE_INT bitwidths[] = { 1, 2, 3, 4, 5, 8, 12, 16, 32, 4 };
- unsigned HOST_WIDE_INT bitmasks[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 12 };
+ unsigned HOST_WIDE_INT bitwidths[] = { 1, 2, 3, 4, 5, 8, 12, 16, 32, 64, 4 };
+ unsigned HOST_WIDE_INT bitmasks[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12 };
unsigned HOST_WIDE_INT bitwidth = bitwidths[op_flags - O_U1];
unsigned HOST_WIDE_INT bitmask = bitmasks[op_flags - O_U1];
@@ -824,7 +824,7 @@ s390_const_operand_ok (tree arg, int argnum, int op_flags, tree decl)
gcc_assert(ARRAY_SIZE(bitmasks) == (O_M12 - O_U1 + 1));
if (!tree_fits_uhwi_p (arg)
- || tree_to_uhwi (arg) > (HOST_WIDE_INT_1U << bitwidth) - 1
+ || tree_to_uhwi (arg) > ((HOST_WIDE_INT_1U << (bitwidth - 1) << 1) - 1)
|| (bitmask && tree_to_uhwi (arg) & ~bitmask))
{
if (bitmask)
diff --git a/gcc/config/xtensa/predicates.md b/gcc/config/xtensa/predicates.md
index a3575a6..672fb00 100644
--- a/gcc/config/xtensa/predicates.md
+++ b/gcc/config/xtensa/predicates.md
@@ -195,7 +195,7 @@
(match_code "plus,minus"))
(define_predicate "xtensa_cstoresi_operator"
- (match_code "eq,ne,gt,ge,lt,le"))
+ (match_code "eq,ne,gt,ge,lt,le,gtu,geu,ltu,leu"))
(define_predicate "xtensa_shift_per_byte_operator"
(match_code "ashift,ashiftrt,lshiftrt"))
diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc
index 1afaa1c..a4f8e3e 100644
--- a/gcc/config/xtensa/xtensa.cc
+++ b/gcc/config/xtensa/xtensa.cc
@@ -994,41 +994,63 @@ xtensa_expand_scc (rtx operands[4], machine_mode cmp_mode)
rtx cmp;
rtx one_tmp, zero_tmp;
rtx (*gen_fn) (rtx, rtx, rtx, rtx, rtx);
- enum rtx_code code = GET_CODE (operands[1]);
- if (cmp_mode == SImode && CONST_INT_P (operands[3])
- && (code == EQ || code == NE))
- switch (INTVAL (operands[3]))
- {
- case 0:
- if (TARGET_MINMAX)
- {
- one_tmp = force_reg (SImode, const1_rtx);
- emit_insn (gen_uminsi3 (dest, operands[2], one_tmp));
- if (code == EQ)
- emit_insn (gen_xorsi3 (dest, dest, one_tmp));
+ if (cmp_mode == SImode && TARGET_SALT)
+ {
+ rtx a = operands[2], b = force_reg (SImode, operands[3]);
+ enum rtx_code code = GET_CODE (operands[1]);
+ bool invert_res = false;
+
+ switch (code)
+ {
+ case GE:
+ case GEU:
+ invert_res = true;
+ break;
+ case GT:
+ case GTU:
+ std::swap (a, b);
+ break;
+ case LE:
+ case LEU:
+ invert_res = true;
+ std::swap (a, b);
+ break;
+ default:
+ break;
+ }
+
+ switch (code)
+ {
+ case GE:
+ case GT:
+ case LE:
+ case LT:
+ emit_insn (gen_salt (dest, a, b));
+ if (!invert_res)
return 1;
- }
- break;
- case -2147483648:
- if (TARGET_ABS)
- {
- emit_insn (gen_abssi2 (dest, operands[2]));
- if (code == EQ)
- emit_insn (gen_lshrsi3 (dest, dest, GEN_INT (31)));
- else
- {
- emit_insn (gen_ashrsi3 (dest, dest, GEN_INT (31)));
- emit_insn (gen_addsi3 (dest, dest, const1_rtx));
- }
+ break;
+ case GEU:
+ case GTU:
+ case LEU:
+ case LTU:
+ emit_insn (gen_saltu (dest, a, b));
+ if (!invert_res)
return 1;
- }
- break;
- default:
- break;
- }
+ break;
+ default:
+ break;
+ }
+
+ if (invert_res)
+ {
+ emit_insn (gen_negsi2 (dest, dest));
+ emit_insn (gen_addsi3 (dest, dest, const1_rtx));
+ return 1;
+ }
+ }
- if (! (cmp = gen_conditional_move (code, cmp_mode,
+ if (! (cmp = gen_conditional_move (GET_CODE (operands[1]), cmp_mode,
operands[2], operands[3])))
return 0;
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index 34e06af..5987681 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -54,6 +54,7 @@ along with GCC; see the file COPYING3. If not see
#define TARGET_WINDOWED_ABI xtensa_windowed_abi
#define TARGET_DEBUG XCHAL_HAVE_DEBUG
#define TARGET_L32R XCHAL_HAVE_L32R
+#define TARGET_SALT (XTENSA_MARCH_EARLIEST >= 260000)
#define TARGET_DEFAULT (MASK_SERIALIZE_VOLATILE)
diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md
index d6505e7..20af1cb 100644
--- a/gcc/config/xtensa/xtensa.md
+++ b/gcc/config/xtensa/xtensa.md
@@ -2393,6 +2393,26 @@
DONE;
})
+(define_insn "salt"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (lt:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")))]
+ "TARGET_SALT"
+ "salt\t%0, %1, %2"
+ [(set_attr "type" "arith")
+ (set_attr "mode" "SI")
+ (set_attr "length" "3")])
+
+(define_insn "saltu"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (ltu:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "register_operand" "r")))]
+ "TARGET_SALT"
+ "saltu\t%0, %1, %2"
+ [(set_attr "type" "arith")
+ (set_attr "mode" "SI")
+ (set_attr "length" "3")])
+
(define_expand "cstoresf4"
[(match_operand:SI 0 "register_operand")
(match_operator:SI 1 "comparison_operator"
@@ -3188,6 +3208,118 @@
(const_int 5)
(const_int 6)))])
+(define_insn_and_split "eq_zero_NSA"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (eq:SI (match_operand:SI 1 "register_operand" "r")
+ (const_int 0)))]
+ "TARGET_NSA"
+ "#"
+ "&& 1"
+ [(set (match_dup 0)
+ (clz:SI (match_dup 1)))
+ (set (match_dup 0)
+ (lshiftrt:SI (match_dup 0)
+ (const_int 5)))]
+ ""
+ [(set_attr "type" "move")
+ (set_attr "mode" "SI")
+ (set_attr "length" "6")])
+
+(define_insn_and_split "eqne_zero"
+ [(set (match_operand:SI 0 "register_operand" "=a,&a")
+ (match_operator:SI 2 "boolean_operator"
+ [(match_operand:SI 1 "register_operand" "0,r")
+ (const_int 0)]))
+ (clobber (match_scratch:SI 3 "=&a,X"))]
+ ""
+ "#"
+ "&& reload_completed"
+ [(const_int 0)]
+{
+ enum rtx_code code = GET_CODE (operands[2]);
+ int same_p = REGNO (operands[0]) == REGNO (operands[1]);
+ emit_move_insn (same_p ? operands[3] : operands[0],
+ code == EQ ? constm1_rtx : const1_rtx);
+ emit_insn (gen_movsicc_internal0 (operands[0], operands[1],
+ same_p ? operands[3] : operands[1],
+ operands[0],
+ gen_rtx_fmt_ee (same_p ? NE : EQ,
+ VOIDmode,
+ operands[1],
+ const0_rtx)));
+ if (code == EQ)
+ emit_insn (gen_addsi3 (operands[0], operands[0], const1_rtx));
+ DONE;
+}
+ [(set_attr "type" "move")
+ (set_attr "mode" "SI")
+ (set (attr "length")
+ (if_then_else (match_test "GET_CODE (operands[2]) == EQ")
+ (if_then_else (match_test "TARGET_DENSITY")
+ (const_int 7)
+ (const_int 9))
+ (if_then_else (match_test "TARGET_DENSITY")
+ (const_int 5)
+ (const_int 6))))])
+
+(define_insn_and_split "*eqne_zero_masked_bits"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (match_operator 3 "boolean_operator"
+ [(and:SI (match_operand:SI 1 "register_operand" "r")
+ (match_operand:SI 2 "const_int_operand" "i"))
+ (const_int 0)]))]
+ "IN_RANGE (exact_log2 (INTVAL (operands[2]) + 1), 17, 31)
+ || IN_RANGE (exact_log2 (-INTVAL (operands[2])), 1, 30)"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ HOST_WIDE_INT mask = INTVAL (operands[2]);
+ int n;
+ enum rtx_code code = GET_CODE (operands[3]);
+ if (IN_RANGE (n = exact_log2 (mask + 1), 17, 31))
+ emit_insn (gen_ashlsi3 (operands[0], operands[1], GEN_INT (32 - n)));
+ else
+ emit_insn (gen_lshrsi3 (operands[0], operands[1],
+ GEN_INT (floor_log2 (-mask))));
+ if (TARGET_NSA && code == EQ)
+ emit_insn (gen_eq_zero_NSA (operands[0], operands[0]));
+ else
+ emit_insn (gen_eqne_zero (operands[0], operands[0],
+ gen_rtx_fmt_ee (code, VOIDmode,
+ operands[0], const0_rtx)));
+ DONE;
+})
+
+(define_insn_and_split "*eqne_INT_MIN"
+ [(set (match_operand:SI 0 "register_operand" "=a")
+ (match_operator:SI 2 "boolean_operator"
+ [(match_operand:SI 1 "register_operand" "r")
+ (const_int -2147483648)]))]
+ "TARGET_ABS"
+ "#"
+ "&& 1"
+ [(const_int 0)]
+{
+ emit_insn (gen_abssi2 (operands[0], operands[1]));
+ if (GET_CODE (operands[2]) == EQ)
+ emit_insn (gen_lshrsi3 (operands[0], operands[0], GEN_INT (31)));
+ else
+ {
+ emit_insn (gen_ashrsi3 (operands[0], operands[0], GEN_INT (31)));
+ emit_insn (gen_addsi3 (operands[0], operands[0], const1_rtx));
+ }
+ DONE;
+}
+ [(set_attr "type" "move")
+ (set_attr "mode" "SI")
+ (set (attr "length")
+ (if_then_else (match_test "GET_CODE (operands[2]) == EQ")
+ (const_int 6)
+ (if_then_else (match_test "TARGET_DENSITY")
+ (const_int 8)
+ (const_int 9))))])
+
(define_peephole2
[(set (match_operand:SI 0 "register_operand")
(match_operand:SI 6 "reload_operand"))
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 4879a01..ea73753 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,14 @@
+2023-09-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/111357
+ * pt.cc (expand_integer_pack): Convert argument to int.
+
+2023-09-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/107198
+ * typeck2.cc (process_init_constructor_array): Use VEC_INIT_EXPR
+ regardless of seen_error.
+
2023-09-08 Patrick Palka <ppalka@redhat.com>
PR c++/99599
diff --git a/gcc/cp/class.cc b/gcc/cp/class.cc
index 9139a00..d270dcbb1 100644
--- a/gcc/cp/class.cc
+++ b/gcc/cp/class.cc
@@ -4065,7 +4065,7 @@ check_subobject_offset (tree type, tree offset, splay_tree offsets)
return 1;
if (cv_check != ignore
- && same_type_ignoring_top_level_qualifiers_p (elt, type))
+ && similar_type_p (elt, type))
{
if (cv_check == fast)
return 1;
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 838179d..a40b895 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -1507,21 +1507,6 @@ register_specialization (tree spec, tree tmpl, tree args, bool is_friend,
|| (TREE_CODE (tmpl) == FIELD_DECL
&& TREE_CODE (spec) == NONTYPE_ARGUMENT_PACK));
- if (TREE_CODE (spec) == FUNCTION_DECL
- && uses_template_parms (DECL_TI_ARGS (spec)))
- /* This is the FUNCTION_DECL for a partial instantiation. Don't
- register it; we want the corresponding TEMPLATE_DECL instead.
- We use `uses_template_parms (DECL_TI_ARGS (spec))' rather than
- the more obvious `uses_template_parms (spec)' to avoid problems
- with default function arguments. In particular, given
- something like this:
-
- template <class T> void f(T t1, T t = T())
-
- the default argument expression is not substituted for in an
- instantiation unless and until it is actually needed. */
- return spec;
-
spec_entry elt;
elt.tmpl = tmpl;
elt.args = args;
@@ -3793,6 +3778,8 @@ expand_integer_pack (tree call, tree args, tsubst_flags_t complain,
}
else
{
+ hi = perform_implicit_conversion_flags (integer_type_node, hi, complain,
+ LOOKUP_IMPLICIT);
hi = instantiate_non_dependent_expr (hi, complain);
hi = cxx_constant_value (hi, complain);
int len = valid_constant_size_p (hi) ? tree_to_shwi (hi) : -1;
@@ -14663,7 +14650,7 @@ tsubst_template_decl (tree t, tree args, tsubst_flags_t complain,
tree in_decl = t;
tree spec;
tree tmpl_args;
- tree full_args;
+ tree full_args = NULL_TREE;
tree r;
hashval_t hash = 0;
@@ -14754,7 +14741,8 @@ tsubst_template_decl (tree t, tree args, tsubst_flags_t complain,
tree inner = decl;
++processing_template_decl;
if (TREE_CODE (inner) == FUNCTION_DECL)
- inner = tsubst_function_decl (inner, args, complain, lambda_fntype);
+ inner = tsubst_function_decl (inner, args, complain, lambda_fntype,
+ /*use_spec_table=*/false);
else
{
if (TREE_CODE (inner) == TYPE_DECL && !TYPE_DECL_ALIAS_P (inner))
@@ -14792,6 +14780,11 @@ tsubst_template_decl (tree t, tree args, tsubst_flags_t complain,
}
else
{
+ if (TREE_CODE (inner) == FUNCTION_DECL)
+ /* Set DECL_TI_ARGS to the full set of template arguments, which
+ tsubst_function_decl didn't do due to use_spec_table=false. */
+ DECL_TI_ARGS (inner) = full_args;
+
DECL_TI_TEMPLATE (inner) = r;
DECL_TI_ARGS (r) = DECL_TI_ARGS (inner);
}
@@ -14822,9 +14815,7 @@ tsubst_template_decl (tree t, tree args, tsubst_flags_t complain,
if (TREE_CODE (decl) == FUNCTION_DECL && !lambda_fntype)
/* Record this non-type partial instantiation. */
- register_specialization (r, t,
- DECL_TI_ARGS (DECL_TEMPLATE_RESULT (r)),
- false, hash);
+ register_specialization (r, t, full_args, false, hash);
return r;
}
diff --git a/gcc/cp/typeck2.cc b/gcc/cp/typeck2.cc
index 582a73b..cd1ea04 100644
--- a/gcc/cp/typeck2.cc
+++ b/gcc/cp/typeck2.cc
@@ -1683,7 +1683,6 @@ process_init_constructor_array (tree type, tree init, int nested, int flags,
if (next)
{
if (next != error_mark_node
- && ! seen_error () // Improves error-recovery on anew5.C.
&& (initializer_constant_valid_p (next, TREE_TYPE (next))
!= null_pointer_node))
{
diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def
index 9e2f1d8..871cbf7 100644
--- a/gcc/dbgcnt.def
+++ b/gcc/dbgcnt.def
@@ -162,6 +162,7 @@ DEBUG_COUNTER (dom_unreachable_edges)
DEBUG_COUNTER (dse)
DEBUG_COUNTER (dse1)
DEBUG_COUNTER (dse2)
+DEBUG_COUNTER (form_fma)
DEBUG_COUNTER (gcse2_delete)
DEBUG_COUNTER (gimple_unroll)
DEBUG_COUNTER (global_alloc_at_func)
diff --git a/gcc/diagnostic-event-id.h b/gcc/diagnostic-event-id.h
index 84f4b65..c5f5d60 100644
--- a/gcc/diagnostic-event-id.h
+++ b/gcc/diagnostic-event-id.h
@@ -58,4 +58,9 @@ class diagnostic_event_id_t
The %@ format code requires that known_p be true for the event ID. */
typedef diagnostic_event_id_t *diagnostic_event_id_ptr;
+/* A type for compactly referring to a particular thread within a
+ diagnostic_path. Typically there is just one thread per path,
+ with id 0. */
+typedef unsigned diagnostic_thread_id_t;
+
#endif /* ! GCC_DIAGNOSTIC_EVENT_ID_H */
diff --git a/gcc/diagnostic-format-sarif.cc b/gcc/diagnostic-format-sarif.cc
index 1eff719..f56c4ce 100644
--- a/gcc/diagnostic-format-sarif.cc
+++ b/gcc/diagnostic-format-sarif.cc
@@ -94,6 +94,23 @@ public:
sarif_builder *builder);
};
+/* Subclass of sarif_object for SARIF threadFlow objects
+ (SARIF v2.1.0 section 3.37) for PATH. */
+
+class sarif_thread_flow : public sarif_object
+{
+public:
+ sarif_thread_flow (const diagnostic_thread &thread);
+
+ void add_location (json::object *thread_flow_loc_obj)
+ {
+ m_locations_arr->append (thread_flow_loc_obj);
+ }
+
+private:
+ json::array *m_locations_arr;
+};
+
/* A class for managing SARIF output (for -fdiagnostics-format=sarif-stderr
and -fdiagnostics-format=sarif-file).
@@ -168,9 +185,9 @@ private:
json::object *
make_logical_location_object (const logical_location &logical_loc) const;
json::object *make_code_flow_object (const diagnostic_path &path);
- json::object *make_thread_flow_object (const diagnostic_path &path);
json::object *
- make_thread_flow_location_object (const diagnostic_event &event);
+ make_thread_flow_location_object (const diagnostic_event &event,
+ int path_event_idx);
json::array *maybe_make_kinds_array (diagnostic_event::meaning m) const;
json::object *maybe_make_physical_location_object (location_t loc);
json::object *make_artifact_location_object (location_t loc);
@@ -365,6 +382,19 @@ sarif_ice_notification::sarif_ice_notification (diagnostic_context *context,
set ("level", new json::string ("error"));
}
+/* class sarif_thread_flow : public sarif_object. */
+
+sarif_thread_flow::sarif_thread_flow (const diagnostic_thread &thread)
+{
+ /* "id" property (SARIF v2.1.0 section 3.37.2). */
+ label_text name (thread.get_name (false));
+ set ("id", new json::string (name.get ()));
+
+ /* "locations" property (SARIF v2.1.0 section 3.37.6). */
+ m_locations_arr = new json::array ();
+ set ("locations", m_locations_arr);
+}
+
/* class sarif_builder. */
/* sarif_builder's ctor. */
@@ -1091,41 +1121,44 @@ sarif_builder::make_code_flow_object (const diagnostic_path &path)
{
json::object *code_flow_obj = new json::object ();
- /* "threadFlows" property (SARIF v2.1.0 section 3.36.3).
- Currently we only support one thread per result. */
+ /* "threadFlows" property (SARIF v2.1.0 section 3.36.3). */
json::array *thread_flows_arr = new json::array ();
- json::object *thread_flow_obj = make_thread_flow_object (path);
- thread_flows_arr->append (thread_flow_obj);
- code_flow_obj->set ("threadFlows", thread_flows_arr);
- return code_flow_obj;
-}
-
-/* Make a threadFlow object (SARIF v2.1.0 section 3.37) for PATH. */
-
-json::object *
-sarif_builder::make_thread_flow_object (const diagnostic_path &path)
-{
- json::object *thread_flow_obj = new json::object ();
-
- /* "locations" property (SARIF v2.1.0 section 3.37.6). */
- json::array *locations_arr = new json::array ();
+ /* Walk the events, consolidating into per-thread threadFlow objects,
+ using the index with PATH as the overall executionOrder. */
+ hash_map<int_hash<diagnostic_thread_id_t, -1, -2>,
+ sarif_thread_flow *> thread_id_map;
for (unsigned i = 0; i < path.num_events (); i++)
{
const diagnostic_event &event = path.get_event (i);
+ const diagnostic_thread_id_t thread_id = event.get_thread_id ();
+ sarif_thread_flow *thread_flow_obj;
+
+ if (sarif_thread_flow **slot = thread_id_map.get (thread_id))
+ thread_flow_obj = *slot;
+ else
+ {
+ const diagnostic_thread &thread = path.get_thread (thread_id);
+ thread_flow_obj = new sarif_thread_flow (thread);
+ thread_flows_arr->append (thread_flow_obj);
+ thread_id_map.put (thread_id, thread_flow_obj);
+ }
+
+ /* Add event to thread's threadFlow object. */
json::object *thread_flow_loc_obj
- = make_thread_flow_location_object (event);
- locations_arr->append (thread_flow_loc_obj);
+ = make_thread_flow_location_object (event, i);
+ thread_flow_obj->add_location (thread_flow_loc_obj);
}
- thread_flow_obj->set ("locations", locations_arr);
+ code_flow_obj->set ("threadFlows", thread_flows_arr);
- return thread_flow_obj;
+ return code_flow_obj;
}
/* Make a threadFlowLocation object (SARIF v2.1.0 section 3.38) for EVENT. */
json::object *
-sarif_builder::make_thread_flow_location_object (const diagnostic_event &ev)
+sarif_builder::make_thread_flow_location_object (const diagnostic_event &ev,
+ int path_event_idx)
{
json::object *thread_flow_loc_obj = new json::object ();
@@ -1142,6 +1175,11 @@ sarif_builder::make_thread_flow_location_object (const diagnostic_event &ev)
thread_flow_loc_obj->set ("nestingLevel",
new json::integer_number (ev.get_stack_depth ()));
+ /* "executionOrder" property (SARIF v2.1.0 3.38.11).
+ Offset by 1 to match the human-readable values emitted by %@. */
+ thread_flow_loc_obj->set ("executionOrder",
+ new json::integer_number (path_event_idx + 1));
+
/* It might be nice to eventually implement the following for -fanalyzer:
- the "stack" property (SARIF v2.1.0 section 3.38.5)
- the "state" property (SARIF v2.1.0 section 3.38.9)
diff --git a/gcc/diagnostic-path.h b/gcc/diagnostic-path.h
index 9d9d629..d39872a 100644
--- a/gcc/diagnostic-path.h
+++ b/gcc/diagnostic-path.h
@@ -155,6 +155,20 @@ class diagnostic_event
virtual const logical_location *get_logical_location () const = 0;
virtual meaning get_meaning () const = 0;
+
+ virtual diagnostic_thread_id_t get_thread_id () const = 0;
+};
+
+/* Abstract base class representing a thread of execution within
+ a diagnostic_path.
+ Each diagnostic_event is associated with one thread.
+ Typically there is just one thread per diagnostic_path. */
+
+class diagnostic_thread
+{
+public:
+ virtual ~diagnostic_thread () {}
+ virtual label_text get_name (bool can_colorize) const = 0;
};
/* Abstract base class for getting at a sequence of events. */
@@ -165,8 +179,12 @@ class diagnostic_path
virtual ~diagnostic_path () {}
virtual unsigned num_events () const = 0;
virtual const diagnostic_event & get_event (int idx) const = 0;
+ virtual unsigned num_threads () const = 0;
+ virtual const diagnostic_thread &
+ get_thread (diagnostic_thread_id_t) const = 0;
bool interprocedural_p () const;
+ bool multithreaded_p () const;
private:
bool get_first_event_in_a_function (unsigned *out_idx) const;
@@ -180,7 +198,8 @@ class simple_diagnostic_event : public diagnostic_event
{
public:
simple_diagnostic_event (location_t loc, tree fndecl, int depth,
- const char *desc);
+ const char *desc,
+ diagnostic_thread_id_t thread_id = 0);
~simple_diagnostic_event ();
location_t get_location () const final override { return m_loc; }
@@ -198,12 +217,32 @@ class simple_diagnostic_event : public diagnostic_event
{
return meaning ();
}
+ diagnostic_thread_id_t get_thread_id () const final override
+ {
+ return m_thread_id;
+ }
private:
location_t m_loc;
tree m_fndecl;
int m_depth;
char *m_desc; // has been i18n-ed and formatted
+ diagnostic_thread_id_t m_thread_id;
+};
+
+/* A simple implementation of diagnostic_thread. */
+
+class simple_diagnostic_thread : public diagnostic_thread
+{
+public:
+ simple_diagnostic_thread (const char *name) : m_name (name) {}
+ label_text get_name (bool) const final override
+ {
+ return label_text::borrow (m_name);
+ }
+
+private:
+ const char *m_name; // has been i18n-ed and formatted
};
/* A simple implementation of diagnostic_path, as a vector of
@@ -212,17 +251,27 @@ class simple_diagnostic_event : public diagnostic_event
class simple_diagnostic_path : public diagnostic_path
{
public:
- simple_diagnostic_path (pretty_printer *event_pp)
- : m_event_pp (event_pp) {}
+ simple_diagnostic_path (pretty_printer *event_pp);
unsigned num_events () const final override;
const diagnostic_event & get_event (int idx) const final override;
+ unsigned num_threads () const final override;
+ const diagnostic_thread &
+ get_thread (diagnostic_thread_id_t) const final override;
+
+ diagnostic_thread_id_t add_thread (const char *name);
diagnostic_event_id_t add_event (location_t loc, tree fndecl, int depth,
const char *fmt, ...)
ATTRIBUTE_GCC_DIAG(5,6);
+ diagnostic_event_id_t
+ add_thread_event (diagnostic_thread_id_t thread_id,
+ location_t loc, tree fndecl, int depth,
+ const char *fmt, ...)
+ ATTRIBUTE_GCC_DIAG(6,7);
private:
+ auto_delete_vec<simple_diagnostic_thread> m_threads;
auto_delete_vec<simple_diagnostic_event> m_events;
/* (for use by add_event). */
diff --git a/gcc/diagnostic-show-locus.cc b/gcc/diagnostic-show-locus.cc
index 0514815..31ef851 100644
--- a/gcc/diagnostic-show-locus.cc
+++ b/gcc/diagnostic-show-locus.cc
@@ -367,7 +367,8 @@ class layout
public:
layout (diagnostic_context *context,
rich_location *richloc,
- diagnostic_t diagnostic_kind);
+ diagnostic_t diagnostic_kind,
+ pretty_printer *pp = nullptr);
bool maybe_add_location_range (const location_range *loc_range,
unsigned original_idx,
@@ -1183,9 +1184,10 @@ make_policy (const diagnostic_context &dc,
layout::layout (diagnostic_context * context,
rich_location *richloc,
- diagnostic_t diagnostic_kind)
+ diagnostic_t diagnostic_kind,
+ pretty_printer *pp)
: m_context (context),
- m_pp (context->printer),
+ m_pp (pp ? pp : context->printer),
m_policy (make_policy (*context, *richloc)),
m_primary_loc (richloc->get_range (0)->m_loc),
m_exploc (richloc->get_expanded_location (0), m_policy,
@@ -2825,12 +2827,14 @@ gcc_rich_location::add_location_if_nearby (location_t loc,
}
/* Print the physical source code corresponding to the location of
- this diagnostic, with additional annotations. */
+ this diagnostic, with additional annotations.
+ If PP is non-null, then use it rather than CONTEXT's printer. */
void
diagnostic_show_locus (diagnostic_context * context,
rich_location *richloc,
- diagnostic_t diagnostic_kind)
+ diagnostic_t diagnostic_kind,
+ pretty_printer *pp)
{
location_t loc = richloc->get_loc ();
/* Do nothing if source-printing has been disabled. */
@@ -2851,7 +2855,7 @@ diagnostic_show_locus (diagnostic_context * context,
context->last_location = loc;
- layout layout (context, richloc, diagnostic_kind);
+ layout layout (context, richloc, diagnostic_kind, pp);
for (int line_span_idx = 0; line_span_idx < layout.get_num_line_spans ();
line_span_idx++)
{
diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index 65c0cfb..00183b1 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -2404,6 +2404,14 @@ diagnostics_text_art_charset_init (diagnostic_context *context,
}
}
+/* class simple_diagnostic_path : public diagnostic_path. */
+
+simple_diagnostic_path::simple_diagnostic_path (pretty_printer *event_pp)
+ : m_event_pp (event_pp)
+{
+ add_thread ("main");
+}
+
/* Implementation of diagnostic_path::num_events vfunc for
simple_diagnostic_path: simply get the number of events in the vec. */
@@ -2422,6 +2430,25 @@ simple_diagnostic_path::get_event (int idx) const
return *m_events[idx];
}
+unsigned
+simple_diagnostic_path::num_threads () const
+{
+ return m_threads.length ();
+}
+
+const diagnostic_thread &
+simple_diagnostic_path::get_thread (diagnostic_thread_id_t idx) const
+{
+ return *m_threads[idx];
+}
+
+diagnostic_thread_id_t
+simple_diagnostic_path::add_thread (const char *name)
+{
+ m_threads.safe_push (new simple_diagnostic_thread (name));
+ return m_threads.length () - 1;
+}
+
/* Add an event to this path at LOC within function FNDECL at
stack depth DEPTH.
@@ -2464,15 +2491,56 @@ simple_diagnostic_path::add_event (location_t loc, tree fndecl, int depth,
return diagnostic_event_id_t (m_events.length () - 1);
}
+diagnostic_event_id_t
+simple_diagnostic_path::add_thread_event (diagnostic_thread_id_t thread_id,
+ location_t loc,
+ tree fndecl,
+ int depth,
+ const char *fmt, ...)
+{
+ pretty_printer *pp = m_event_pp;
+ pp_clear_output_area (pp);
+
+ text_info ti;
+ rich_location rich_loc (line_table, UNKNOWN_LOCATION);
+
+ va_list ap;
+
+ va_start (ap, fmt);
+
+ ti.format_spec = _(fmt);
+ ti.args_ptr = &ap;
+ ti.err_no = 0;
+ ti.x_data = NULL;
+ ti.m_richloc = &rich_loc;
+
+ pp_format (pp, &ti);
+ pp_output_formatted_text (pp);
+
+ va_end (ap);
+
+ simple_diagnostic_event *new_event
+ = new simple_diagnostic_event (loc, fndecl, depth, pp_formatted_text (pp),
+ thread_id);
+ m_events.safe_push (new_event);
+
+ pp_clear_output_area (pp);
+
+ return diagnostic_event_id_t (m_events.length () - 1);
+}
+
/* struct simple_diagnostic_event. */
/* simple_diagnostic_event's ctor. */
-simple_diagnostic_event::simple_diagnostic_event (location_t loc,
- tree fndecl,
- int depth,
- const char *desc)
-: m_loc (loc), m_fndecl (fndecl), m_depth (depth), m_desc (xstrdup (desc))
+simple_diagnostic_event::
+simple_diagnostic_event (location_t loc,
+ tree fndecl,
+ int depth,
+ const char *desc,
+ diagnostic_thread_id_t thread_id)
+: m_loc (loc), m_fndecl (fndecl), m_depth (depth), m_desc (xstrdup (desc)),
+ m_thread_id (thread_id)
{
}
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index 00b828f..4ec83a9 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -509,7 +509,8 @@ extern void diagnostic_finish (diagnostic_context *);
extern void diagnostic_report_current_module (diagnostic_context *, location_t);
extern void diagnostic_show_locus (diagnostic_context *,
rich_location *richloc,
- diagnostic_t diagnostic_kind);
+ diagnostic_t diagnostic_kind,
+ pretty_printer *pp = nullptr);
extern void diagnostic_show_any_path (diagnostic_context *, diagnostic_info *);
/* Because we read source files a second time after the frontend did it the
diff --git a/gcc/doc/gm2.texi b/gcc/doc/gm2.texi
index 9f7f8ce..bae822f 100644
--- a/gcc/doc/gm2.texi
+++ b/gcc/doc/gm2.texi
@@ -659,6 +659,13 @@ zero.
@item -fwholevalue
generate code to detect whole number overflow and underflow.
+@item -Wcase-enum
+generate a warning if a @code{CASE} statement selects on an enumerated
+type expression and the statement is missing one or more @code{CASE}
+labels. No warning is issued if the @code{CASE} statement has a default
+@code{ELSE} clause.
+The option @samp{-Wall} will turn on this flag.
+
@item -Wuninit-variable-checking
issue a warning if a variable is used before it is initialized.
The checking only occurs in the first basic block in each procedure.
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index 15f9fa0..1dfe465 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -306,6 +306,13 @@ called on that variable between the mark and sweep phases of garbage
collection. The gt_clear_cache function is free to mark blocks as used, or to
clear pointers in the variable.
+In a hash table, the @samp{gt_cleare_cache} function discards entries
+if the key is not marked, or marks the value if the key is marked.
+
+Note that caches should generally use @code{deletable} instead;
+@code{cache} is only preferable if the value is impractical to
+recompute from the key when needed.
+
@findex deletable
@item deletable
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 33befee..03d93e6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -1236,7 +1236,10 @@ See RS/6000 and PowerPC Options.
-mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{reg}
-mstack-protector-guard-offset=@var{offset}
-mcsr-check -mno-csr-check
--minline-atomics -mno-inline-atomics}
+-minline-atomics -mno-inline-atomics
+-minline-strlen -mno-inline-strlen
+-minline-strcmp -mno-inline-strcmp
+-minline-strncmp -mno-inline-strncmp}
@emph{RL78 Options}
@gccoptlist{-msim -mmul=none -mmul=g13 -mmul=g14 -mallregs
@@ -29359,6 +29362,30 @@ Do or don't use smaller but slower subword atomic emulation code that uses
libatomic function calls. The default is to use fast inline subword atomics
that do not require libatomic.
+@opindex minline-strlen
+@item -minline-strlen
+@itemx -mno-inline-strlen
+Do or do not attempt to inline strlen calls if possible.
+Inlining will only be done if the string is properly aligned
+and instructions for accelerated processing are available.
+The default is to not inline strlen calls.
+
+@opindex minline-strcmp
+@item -minline-strcmp
+@itemx -mno-inline-strcmp
+Do or do not attempt to inline strcmp calls if possible.
+Inlining will only be done if the strings are properly aligned
+and instructions for accelerated processing are available.
+The default is to not inline strcmp calls.
+
+@opindex minline-strncmp
+@item -minline-strncmp
+@itemx -mno-inline-strncmp
+Do or do not attempt to inline strncmp calls if possible.
+Inlining will only be done if the strings are properly aligned
+and instructions for accelerated processing are available.
+The default is to not inline strncmp calls.
+
@opindex mshorten-memrefs
@item -mshorten-memrefs
@itemx -mno-shorten-memrefs
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 1a78b3c..8bf7014 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2932,6 +2932,10 @@ Target has limited stack size. The stack size limit can be obtained using the
STACK_SIZE macro defined by @ref{stack_size_ao,,@code{dg-add-options} feature
@code{stack_size}}.
+Note that for certain targets, stack size limits are relevant for
+execution only, and therefore considered only if @code{dg-do run} is
+in effect, otherwise unlimited.
+
@item static
Target supports @option{-static}.
@@ -3327,9 +3331,12 @@ The first line of the expected output for a function @var{fn} has the form:
Subsequent lines of the expected output also start with @var{prefix}.
In both cases, whitespace after @var{prefix} is not significant.
-The test discards assembly directives such as @code{.cfi_startproc}
-and local label definitions such as @code{.LFB0} from the compiler's
-assembly output. It then matches the result against the expected
+Depending on the configuration (see
+@code{configure_check-function-bodies} in
+@file{gcc/testsuite/lib/scanasm.exp}), the test may discard from the
+compiler's assembly output directives such as @code{.cfi_startproc},
+local label definitions such as @code{.LFB0}, and more.
+It then matches the result against the expected
output for a function as a single regular expression. This means that
later lines can use backslashes to refer back to @samp{(@dots{})}
captures on earlier lines. For example:
diff --git a/gcc/dwarf2cfi.cc b/gcc/dwarf2cfi.cc
index ddc728f..f1777c0 100644
--- a/gcc/dwarf2cfi.cc
+++ b/gcc/dwarf2cfi.cc
@@ -3822,4 +3822,13 @@ make_pass_dwarf2_frame (gcc::context *ctxt)
return new pass_dwarf2_frame (ctxt);
}
+void dwarf2cfi_cc_finalize ()
+{
+ add_cfi_insn = NULL;
+ add_cfi_vec = NULL;
+ cur_trace = NULL;
+ cur_row = NULL;
+ cur_cfa = NULL;
+}
+
#include "gt-dwarf2cfi.h"
diff --git a/gcc/dwarf2out.h b/gcc/dwarf2out.h
index 870b56a..61a9960 100644
--- a/gcc/dwarf2out.h
+++ b/gcc/dwarf2out.h
@@ -419,6 +419,7 @@ struct fixed_point_type_info
} scale_factor;
};
+void dwarf2cfi_cc_finalize (void);
void dwarf2out_cc_finalize (void);
/* Some DWARF internals are exposed for the needs of DWARF-based debug
diff --git a/gcc/emit-rtl.cc b/gcc/emit-rtl.cc
index f6276a2..8bd623d 100644
--- a/gcc/emit-rtl.cc
+++ b/gcc/emit-rtl.cc
@@ -5168,6 +5168,30 @@ emit_jump_insn (rtx x)
return last;
}
+/* Make an insn of code JUMP_INSN with pattern X,
+ add a REG_BR_PROB note that indicates very likely probability,
+ and add it to the end of the doubly-linked list. */
+
+rtx_insn *
+emit_likely_jump_insn (rtx x)
+{
+ rtx_insn *jump = emit_jump_insn (x);
+ add_reg_br_prob_note (jump, profile_probability::very_likely ());
+ return jump;
+}
+
+/* Make an insn of code JUMP_INSN with pattern X,
+ add a REG_BR_PROB note that indicates very unlikely probability,
+ and add it to the end of the doubly-linked list. */
+
+rtx_insn *
+emit_unlikely_jump_insn (rtx x)
+{
+ rtx_insn *jump = emit_jump_insn (x);
+ add_reg_br_prob_note (jump, profile_probability::very_unlikely ());
+ return jump;
+}
+
/* Make an insn of code CALL_INSN with pattern X
and add it to the end of the doubly-linked list. */
diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc
index d19b466..c5ac822 100644
--- a/gcc/fold-const.cc
+++ b/gcc/fold-const.cc
@@ -5565,7 +5565,12 @@ range_check_type (tree etype)
else
return NULL_TREE;
}
- else if (POINTER_TYPE_P (etype) || TREE_CODE (etype) == OFFSET_TYPE)
+ else if (POINTER_TYPE_P (etype)
+ || TREE_CODE (etype) == OFFSET_TYPE
+ /* Right now all BITINT_TYPEs satisfy
+ (unsigned) max + 1 == (unsigned) min, so no need to verify
+ that like for INTEGER_TYPEs. */
+ || TREE_CODE (etype) == BITINT_TYPE)
etype = unsigned_type_for (etype);
return etype;
}
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 76ea9ba..0c95a3a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,29 @@
+2023-09-15 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/30802
+ * trans-array.cc (trans_array_bound_check): Add optional argument
+ COMPNAME for explicit specification of array component name.
+ (array_bound_check_elemental): Helper function for generating
+ bounds-checking code for elemental dimensions.
+ (gfc_conv_expr_descriptor): Use bounds-checking also for elemental
+ dimensions, i.e. those not handled by the scalarizer.
+
+2023-09-15 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/108957
+ * gfortran.h (gfc_symbol): Add comment documenting reference counting.
+ * parse.cc (parse_interface): Remove reference count incrementation.
+
+2023-09-12 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/110996
+ * gfortran.h (gfc_release_symbol): Set return type to bool.
+ * symbol.cc (gfc_release_symbol): Ditto. Return whether symbol was
+ freed.
+ (delete_symbol_from_ns): New, outline code from...
+ (gfc_restore_last_undo_checkpoint): ... here. Delete new symbols
+ from two more namespaces.
+
2023-09-09 Mikael Morin <mikael@gcc.gnu.org>
* bbt.cc (delete_treap): Add argument REMOVED, set it to the removed
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 371f874..6caf776 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -1944,7 +1944,27 @@ typedef struct gfc_symbol
according to the Fortran standard. */
unsigned pass_as_value:1;
+ /* Reference counter, used for memory management.
+
+ Some symbols may be present in more than one namespace, for example
+ function and subroutine symbols are present both in the outer namespace and
+ the procedure body namespace. Freeing symbols with the namespaces they are
+ in would result in double free for those symbols. This field counts
+ references and is used to delay the memory release until the last reference
+ to the symbol is removed.
+
+ Not every symbol pointer is accounted for reference counting. Fields
+ gfc_symtree::n::sym are, and gfc_finalizer::proc_sym as well. But most of
+ them (dummy arguments, generic list elements, etc) are "weak" pointers;
+ the reference count isn't updated when they are assigned, and they are
+ ignored when the surrounding structure memory is released. This is not a
+ problem because there is always a namespace as surrounding context and
+ symbols have a name they can be referred with in that context, so the
+ namespace keeps the symbol from being freed, keeping the pointer valid.
+ When the namespace ceases to exist, and the symbols with it, the other
+ structures referencing symbols cease to exist as well. */
int refs;
+
struct gfc_namespace *ns; /* namespace containing this symbol */
tree backend_decl;
@@ -3514,7 +3534,7 @@ gfc_symtree *gfc_get_unique_symtree (gfc_namespace *);
gfc_user_op *gfc_get_uop (const char *);
gfc_user_op *gfc_find_uop (const char *, gfc_namespace *);
void gfc_free_symbol (gfc_symbol *&);
-void gfc_release_symbol (gfc_symbol *&);
+bool gfc_release_symbol (gfc_symbol *&);
gfc_symbol *gfc_new_symbol (const char *, gfc_namespace *);
gfc_symtree* gfc_find_symtree_in_proc (const char *, gfc_namespace *);
int gfc_find_symbol (const char *, gfc_namespace *, int, gfc_symbol **);
diff --git a/gcc/fortran/parse.cc b/gcc/fortran/parse.cc
index 8f09ddf..5838680 100644
--- a/gcc/fortran/parse.cc
+++ b/gcc/fortran/parse.cc
@@ -4064,9 +4064,6 @@ loop:
accept_statement (st);
prog_unit = gfc_new_block;
prog_unit->formal_ns = gfc_current_ns;
- if (prog_unit == prog_unit->formal_ns->proc_name
- && prog_unit->ns != prog_unit->formal_ns)
- prog_unit->refs++;
decl:
/* Read data declaration statements. */
diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc
index 2cba2ea..a6078bc 100644
--- a/gcc/fortran/symbol.cc
+++ b/gcc/fortran/symbol.cc
@@ -3105,13 +3105,14 @@ gfc_free_symbol (gfc_symbol *&sym)
}
-/* Decrease the reference counter and free memory when we reach zero. */
+/* Decrease the reference counter and free memory when we reach zero.
+ Returns true if the symbol has been freed, false otherwise. */
-void
+bool
gfc_release_symbol (gfc_symbol *&sym)
{
if (sym == NULL)
- return;
+ return false;
if (sym->formal_ns != NULL && sym->refs == 2 && sym->formal_ns != sym->ns
&& (!sym->attr.entry || !sym->module))
@@ -3125,10 +3126,11 @@ gfc_release_symbol (gfc_symbol *&sym)
sym->refs--;
if (sym->refs > 0)
- return;
+ return false;
gcc_assert (sym->refs == 0);
gfc_free_symbol (sym);
+ return true;
}
@@ -3649,6 +3651,29 @@ gfc_drop_last_undo_checkpoint (void)
}
+/* Remove the reference to the symbol SYM in the symbol tree held by NS
+ and free SYM if the last reference to it has been removed.
+ Returns whether the symbol has been freed. */
+
+static bool
+delete_symbol_from_ns (gfc_symbol *sym, gfc_namespace *ns)
+{
+ if (ns == nullptr)
+ return false;
+
+ /* The derived type is saved in the symtree with the first
+ letter capitalized; the all lower-case version to the
+ derived type contains its associated generic function. */
+ const char *sym_name = gfc_fl_struct (sym->attr.flavor)
+ ? gfc_dt_upper_string (sym->name)
+ : sym->name;
+
+ gfc_delete_symtree (&ns->sym_root, sym_name);
+
+ return gfc_release_symbol (sym);
+}
+
+
/* Undoes all the changes made to symbols since the previous checkpoint.
This subroutine is made simpler due to the fact that attributes are
never removed once added. */
@@ -3703,15 +3728,23 @@ gfc_restore_last_undo_checkpoint (void)
}
if (p->gfc_new)
{
- /* The derived type is saved in the symtree with the first
- letter capitalized; the all lower-case version to the
- derived type contains its associated generic function. */
- if (gfc_fl_struct (p->attr.flavor))
- gfc_delete_symtree (&p->ns->sym_root,gfc_dt_upper_string (p->name));
- else
- gfc_delete_symtree (&p->ns->sym_root, p->name);
-
- gfc_release_symbol (p);
+ bool freed = delete_symbol_from_ns (p, p->ns);
+
+ /* If the symbol is a procedure (function or subroutine), remove
+ it from the procedure body namespace as well as from the outer
+ namespace. */
+ if (!freed
+ && p->formal_ns != p->ns)
+ freed = delete_symbol_from_ns (p, p->formal_ns);
+
+ /* If the formal_ns field has not been set yet, the previous
+ conditional does nothing. In that case, we can assume that
+ gfc_current_ns is the procedure body namespace, and remove the
+ symbol from there. */
+ if (!freed
+ && gfc_current_ns != p->ns
+ && gfc_current_ns != p->formal_ns)
+ freed = delete_symbol_from_ns (p, gfc_current_ns);
}
else
restore_old_symbol (p);
diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc
index 6ca58e9..1640587 100644
--- a/gcc/fortran/trans-array.cc
+++ b/gcc/fortran/trans-array.cc
@@ -3452,7 +3452,8 @@ gfc_conv_array_ubound (tree descriptor, int dim)
static tree
trans_array_bound_check (gfc_se * se, gfc_ss *ss, tree index, int n,
- locus * where, bool check_upper)
+ locus * where, bool check_upper,
+ const char *compname = NULL)
{
tree fault;
tree tmp_lo, tmp_up;
@@ -3474,6 +3475,10 @@ trans_array_bound_check (gfc_se * se, gfc_ss *ss, tree index, int n,
if (VAR_P (descriptor))
name = IDENTIFIER_POINTER (DECL_NAME (descriptor));
+ /* Use given (array component) name. */
+ if (compname)
+ name = compname;
+
/* If upper bound is present, include both bounds in the error message. */
if (check_upper)
{
@@ -3524,6 +3529,64 @@ trans_array_bound_check (gfc_se * se, gfc_ss *ss, tree index, int n,
}
+/* Generate code for bounds checking for elemental dimensions. */
+
+static void
+array_bound_check_elemental (gfc_se * se, gfc_ss * ss, gfc_expr * expr)
+{
+ gfc_array_ref *ar;
+ gfc_ref *ref;
+ gfc_symbol *sym;
+ char *var_name = NULL;
+ size_t len;
+ int dim;
+
+ if (expr->expr_type == EXPR_VARIABLE)
+ {
+ sym = expr->symtree->n.sym;
+ len = strlen (sym->name) + 1;
+
+ for (ref = expr->ref; ref; ref = ref->next)
+ if (ref->type == REF_COMPONENT)
+ len += 2 + strlen (ref->u.c.component->name);
+
+ var_name = XALLOCAVEC (char, len);
+ strcpy (var_name, sym->name);
+
+ for (ref = expr->ref; ref; ref = ref->next)
+ {
+ /* Append component name. */
+ if (ref->type == REF_COMPONENT)
+ {
+ strcat (var_name, "%%");
+ strcat (var_name, ref->u.c.component->name);
+ continue;
+ }
+
+ if (ref->type == REF_ARRAY && ref->u.ar.dimen > 0)
+ {
+ ar = &ref->u.ar;
+ for (dim = 0; dim < ar->dimen; dim++)
+ {
+ if (ar->dimen_type[dim] == DIMEN_ELEMENT)
+ {
+ gfc_se indexse;
+ gfc_init_se (&indexse, NULL);
+ gfc_conv_expr_type (&indexse, ar->start[dim],
+ gfc_array_index_type);
+ trans_array_bound_check (se, ss, indexse.expr, dim,
+ &ar->where,
+ ar->as->type != AS_ASSUMED_SIZE
+ || dim < ar->dimen - 1,
+ var_name);
+ }
+ }
+ }
+ }
+ }
+}
+
+
/* Return the offset for an index. Performs bound checking for elemental
dimensions. Single element references are processed separately.
DIM is the array dimension, I is the loop dimension. */
@@ -7823,6 +7886,10 @@ gfc_conv_expr_descriptor (gfc_se *se, gfc_expr *expr)
/* Setup the scalarizing loops and bounds. */
gfc_conv_ss_startstride (&loop);
+ /* Add bounds-checking for elemental dimensions. */
+ if ((gfc_option.rtcheck & GFC_RTCHECK_BOUNDS) && !expr->no_bounds_check)
+ array_bound_check_elemental (se, ss, expr);
+
if (need_tmp)
{
if (expr->ts.type == BT_CHARACTER
diff --git a/gcc/genmatch.cc b/gcc/genmatch.cc
index a1925a7..03d325e 100644
--- a/gcc/genmatch.cc
+++ b/gcc/genmatch.cc
@@ -4891,6 +4891,8 @@ parser::parse_result (operand *result, predicate_id *matcher)
ife->trueexpr = parse_result (result, matcher);
else
ife->trueexpr = parse_op ();
+ if (peek ()->type == CPP_OPEN_PAREN)
+ fatal_at (peek(), "if inside switch cannot have an else");
eat_token (CPP_CLOSE_PAREN);
}
else
diff --git a/gcc/ggc-common.cc b/gcc/ggc-common.cc
index bed7a9d..95803fa 100644
--- a/gcc/ggc-common.cc
+++ b/gcc/ggc-common.cc
@@ -86,7 +86,7 @@ ggc_mark_roots (void)
for (rt = gt_ggc_deletable_rtab; *rt; rt++)
for (rti = *rt; rti->base != NULL; rti++)
- memset (rti->base, 0, rti->stride);
+ memset (rti->base, 0, rti->stride * rti->nelt);
for (rt = gt_ggc_rtab; *rt; rt++)
ggc_mark_root_tab (*rt);
@@ -1293,3 +1293,24 @@ report_heap_memory_use ()
SIZE_AMOUNT (MALLINFO_FN ().arena));
#endif
}
+
+/* Forcibly clear all GTY roots. */
+
+void
+ggc_common_finalize ()
+{
+ const struct ggc_root_tab *const *rt;
+ const_ggc_root_tab_t rti;
+
+ for (rt = gt_ggc_deletable_rtab; *rt; rt++)
+ for (rti = *rt; rti->base != NULL; rti++)
+ memset (rti->base, 0, rti->stride * rti->nelt);
+
+ for (rt = gt_ggc_rtab; *rt; rt++)
+ for (rti = *rt; rti->base != NULL; rti++)
+ memset (rti->base, 0, rti->stride * rti->nelt);
+
+ for (rt = gt_pch_scalar_rtab; *rt; rt++)
+ for (rti = *rt; rti->base != NULL; rti++)
+ memset (rti->base, 0, rti->stride * rti->nelt);
+}
diff --git a/gcc/ggc.h b/gcc/ggc.h
index 34108e2..3280314 100644
--- a/gcc/ggc.h
+++ b/gcc/ggc.h
@@ -368,4 +368,6 @@ inline void gt_ggc_mx (unsigned long int) { }
inline void gt_ggc_mx (long long int) { }
inline void gt_ggc_mx (unsigned long long int) { }
+extern void ggc_common_finalize ();
+
#endif
diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc
index 8ebff7f..d1945cc 100644
--- a/gcc/gimple-range-fold.cc
+++ b/gcc/gimple-range-fold.cc
@@ -898,76 +898,49 @@ fold_using_range::range_of_phi (vrange &r, gphi *phi, fur_source &src)
break;
}
- // If all arguments were equivalences, use the equivalence ranges as no
- // arguments were processed.
- if (r.undefined_p () && !equiv_range.undefined_p ())
- r = equiv_range;
-
- // If the PHI boils down to a single effective argument, look at it.
- if (single_arg)
- {
- // Symbolic arguments can be equivalences.
- if (gimple_range_ssa_p (single_arg))
- {
- // Only allow the equivalence if the PHI definition does not
- // dominate any incoming edge for SINGLE_ARG.
- // See PR 108139 and 109462.
- basic_block bb = gimple_bb (phi);
- if (!dom_info_available_p (CDI_DOMINATORS))
- single_arg = NULL;
- else
- for (x = 0; x < gimple_phi_num_args (phi); x++)
- if (gimple_phi_arg_def (phi, x) == single_arg
- && dominated_by_p (CDI_DOMINATORS,
- gimple_phi_arg_edge (phi, x)->src,
- bb))
- {
- single_arg = NULL;
- break;
- }
- if (single_arg)
- src.register_relation (phi, VREL_EQ, phi_def, single_arg);
- }
- else if (src.get_operand (arg_range, single_arg)
- && arg_range.singleton_p ())
- {
- // Numerical arguments that are a constant can be returned as
- // the constant. This can help fold later cases where even this
- // constant might have been UNDEFINED via an unreachable edge.
- r = arg_range;
- return true;
- }
- }
+ // If all arguments were equivalences, use the equivalence ranges as no
+ // arguments were processed.
+ if (r.undefined_p () && !equiv_range.undefined_p ())
+ r = equiv_range;
- bool loop_info_p = false;
- // If SCEV is available, query if this PHI has any known values.
- if (scev_initialized_p ()
- && !POINTER_TYPE_P (TREE_TYPE (phi_def)))
+ // If the PHI boils down to a single effective argument, look at it.
+ if (single_arg)
{
- class loop *l = loop_containing_stmt (phi);
- if (l && loop_outer (l))
+ // Symbolic arguments can be equivalences.
+ if (gimple_range_ssa_p (single_arg))
{
- Value_Range loop_range (type);
- range_of_ssa_name_with_loop_info (loop_range, phi_def, l, phi, src);
- if (!loop_range.varying_p ())
- {
- if (dump_file && (dump_flags & TDF_DETAILS))
+ // Only allow the equivalence if the PHI definition does not
+ // dominate any incoming edge for SINGLE_ARG.
+ // See PR 108139 and 109462.
+ basic_block bb = gimple_bb (phi);
+ if (!dom_info_available_p (CDI_DOMINATORS))
+ single_arg = NULL;
+ else
+ for (x = 0; x < gimple_phi_num_args (phi); x++)
+ if (gimple_phi_arg_def (phi, x) == single_arg
+ && dominated_by_p (CDI_DOMINATORS,
+ gimple_phi_arg_edge (phi, x)->src,
+ bb))
{
- fprintf (dump_file, "Loops range found for ");
- print_generic_expr (dump_file, phi_def, TDF_SLIM);
- fprintf (dump_file, ": ");
- loop_range.dump (dump_file);
- fprintf (dump_file, " and calculated range :");
- r.dump (dump_file);
- fprintf (dump_file, "\n");
+ single_arg = NULL;
+ break;
}
- r.intersect (loop_range);
- loop_info_p = true;
- }
+ if (single_arg)
+ src.register_relation (phi, VREL_EQ, phi_def, single_arg);
+ }
+ else if (src.get_operand (arg_range, single_arg)
+ && arg_range.singleton_p ())
+ {
+ // Numerical arguments that are a constant can be returned as
+ // the constant. This can help fold later cases where even this
+ // constant might have been UNDEFINED via an unreachable edge.
+ r = arg_range;
+ return true;
}
}
- if (!loop_info_p && phi_analysis_available_p ()
+ // If PHI analysis is available, see if there is an iniital range.
+ if (phi_analysis_available_p ()
&& irange::supports_p (TREE_TYPE (phi_def)))
{
phi_group *g = (phi_analysis())[phi_def];
@@ -992,6 +965,32 @@ fold_using_range::range_of_phi (vrange &r, gphi *phi, fur_source &src)
}
}
+ // If SCEV is available, query if this PHI has any known values.
+ if (scev_initialized_p ()
+ && !POINTER_TYPE_P (TREE_TYPE (phi_def)))
+ {
+ class loop *l = loop_containing_stmt (phi);
+ if (l && loop_outer (l))
+ {
+ Value_Range loop_range (type);
+ range_of_ssa_name_with_loop_info (loop_range, phi_def, l, phi, src);
+ if (!loop_range.varying_p ())
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, "Loops range found for ");
+ print_generic_expr (dump_file, phi_def, TDF_SLIM);
+ fprintf (dump_file, ": ");
+ loop_range.dump (dump_file);
+ fprintf (dump_file, " and calculated range :");
+ r.dump (dump_file);
+ fprintf (dump_file, "\n");
+ }
+ r.intersect (loop_range);
+ }
+ }
+ }
+
return true;
}
diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc
index a49b50b..a0e8cc2 100644
--- a/gcc/gimplify.cc
+++ b/gcc/gimplify.cc
@@ -1363,6 +1363,46 @@ gimplify_bind_expr (tree *expr_p, gimple_seq *pre_p)
if (VAR_P (t))
{
struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+ tree attr;
+
+ if (flag_openmp
+ && !is_global_var (t)
+ && DECL_CONTEXT (t) == current_function_decl
+ && TREE_USED (t)
+ && (attr = lookup_attribute ("omp allocate", DECL_ATTRIBUTES (t)))
+ != NULL_TREE)
+ {
+ tree alloc = TREE_PURPOSE (TREE_VALUE (attr));
+ tree align = TREE_VALUE (TREE_VALUE (attr));
+ /* Allocate directives that appear in a target region must specify
+ an allocator clause unless a requires directive with the
+ dynamic_allocators clause is present in the same compilation
+ unit. */
+ bool missing_dyn_alloc = false;
+ if (alloc == NULL_TREE
+ && ((omp_requires_mask & OMP_REQUIRES_DYNAMIC_ALLOCATORS)
+ == 0))
+ {
+ /* This comes too early for omp_discover_declare_target...,
+ but should at least catch the most common cases. */
+ missing_dyn_alloc
+ = cgraph_node::get (current_function_decl)->offloadable;
+ for (struct gimplify_omp_ctx *ctx2 = ctx;
+ ctx2 && !missing_dyn_alloc; ctx2 = ctx2->outer_context)
+ if (ctx2->code == OMP_TARGET)
+ missing_dyn_alloc = true;
+ }
+ if (missing_dyn_alloc)
+ error_at (DECL_SOURCE_LOCATION (t),
+ "%<allocate%> directive for %qD inside a target "
+ "region must specify an %<allocator%> clause", t);
+ else if (align != NULL_TREE
+ || alloc == NULL_TREE
+ || !integer_onep (alloc))
+ sorry_at (DECL_SOURCE_LOCATION (t),
+ "OpenMP %<allocate%> directive, used for %qD, not "
+ "yet supported", t);
+ }
/* Mark variable as local. */
if (ctx && ctx->region_type != ORT_NONE && !DECL_EXTERNAL (t))
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 30710e8..d24054e 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -1,4 +1,4 @@
-53cdfab53ce79d8dfc1df01a696d4ffc43f17c3d
+967a215d6419c3db58f8f59a0c252c458abce395
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
diff --git a/gcc/ira-costs.cc b/gcc/ira-costs.cc
index d9e700e..8c93ace 100644
--- a/gcc/ira-costs.cc
+++ b/gcc/ira-costs.cc
@@ -1947,15 +1947,8 @@ find_costs_and_classes (FILE *dump_file)
}
if (i >= first_moveable_pseudo && i < last_moveable_pseudo)
i_mem_cost = 0;
- else if (equiv_savings < 0)
- i_mem_cost = -equiv_savings;
- else if (equiv_savings > 0)
- {
- i_mem_cost = 0;
- for (k = cost_classes_ptr->num - 1; k >= 0; k--)
- i_costs[k] += equiv_savings;
- }
-
+ else
+ i_mem_cost -= equiv_savings;
best_cost = (1 << (HOST_BITS_PER_INT - 2)) - 1;
best = ALL_REGS;
alt_class = NO_REGS;
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 847412a..453daa2 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,139 @@
+2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2-compiler/M2CaseList.mod (NewRanges): Add block
+ comment.
+ (NewSet): Add block comment.
+ (DisplayRanges): Add block comment.
+ (IncludeElement): Add block comment.
+ (IncludeElements): Add block comment.
+ (appendString): Add block comment.
+ (appendEnum): Add block comment.
+ (appendTree): Add block comment.
+ (SubrangeErrors): Add block comment.
+
+2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2-compiler/M2CaseList.mod (appendString): New procedure.
+ (appendEnum): Re-implement.
+ (NoOfSetElements): New procedure function.
+ (isPrintableChar): New procedure function.
+ (appendTree): New procedure.
+ (SubrangeErrors): New procedure.
+ (EmitMissingRangeErrors): Call SubrangeErrors if appropriate.
+ * gm2-compiler/M2SymInit.mod (SetFieldInitializedNo): Avoid
+ using a temporary variable once.
+ (IsLocalVar): Comment out.
+ (RecordContainsVarient): Remove fieldtype.
+ (GenerateNoteFlow): Remove lst parameter.
+ (CheckDeferredRecordAccess): Remove lst parameter.
+ (CheckUnary): Remove lst parameter. Remove procSym.
+ (CheckBinary): Remove lst parameter. Remove procSym.
+ (CheckIndrX): Remove lst parameter. Remove procSym.
+ (CheckXIndr): Remove bblst and procSym parameters.
+ (CheckRecordField): Remove procSym, op1tok, op2tok and op2.
+ (CheckBecomes): Remove procSym and bblst.
+ (CheckComparison): Remove procSym and bblst.
+ (CheckAddr): Remove procSym parameter.
+ * gm2-gcc/m2expr.cc (m2expr_CSTIntToString): New function.
+ (m2expr_CSTIntToChar): New function.
+ * gm2-gcc/m2expr.def (CSTIntToString): New procedure function
+ declaration.
+ (CSTIntToChar): New procedure function declaration.
+ * gm2-gcc/m2expr.h (m2expr_CSTIntToChar): New prototype.
+ (m2expr_CSTIntToString): New prototype.
+
+2023-09-13 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * Make-lang.in (GM2_FLAGS): Add -Wcase-enum.
+ (GM2_ISO_FLAGS): Add -Wcase-enum.
+ * gm2-compiler/M2CaseList.mod (EnumerateErrors): Issue
+ singular or plural start text prior to the enum list.
+ Remove unused parameter tokenno.
+ (EmitMissingRangeErrors): New procedure.
+ (MissingCaseBounds): Call EmitMissingRangeErrors.
+ (MissingCaseStatementBounds): Call EmitMissingRangeErrors.
+ * gm2-libs-iso/TextIO.mod: Fix spacing.
+
+2023-09-12 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2-compiler/M2CaseList.def (PushCase): Rename parameters
+ r to rec and v to va. Add expr parameter.
+ (MissingCaseStatementBounds): New procedure function.
+ * gm2-compiler/M2CaseList.mod (RangePair): Add expression.
+ (PushCase): Rename parameters r to rec and v to va. Add
+ expr parameter.
+ (RemoveRange): New procedure function.
+ (SubBitRange): Detect the case when the range in the set matches
+ lo..hi.
+ (CheckLowHigh): New procedure.
+ (ExcludeCaseRanges): Rename parameter c to cd. Rename local
+ variables q to cl and r to rp.
+ (High): Remove.
+ (Low): Remove.
+ (DoEnumValues): Remove.
+ (IncludeElement): New procedure.
+ (IncludeElements): New procedure.
+ (ErrorRangeEnum): New procedure.
+ (ErrorRange): Remove.
+ (ErrorRanges): Remove.
+ (appendEnum): New procedure.
+ (appendStr): New procedure.
+ (EnumerateErrors): New procedure.
+ (MissingCaseBounds): Re-implement.
+ (InRangeList): Remove.
+ (MissingCaseStatementBounds): New procedure function.
+ (checkTypes): Re-format.
+ (inRange): Re-format.
+ (TypeCaseBounds): Re-format.
+ * gm2-compiler/M2Error.mod (GetAnnounceScope): Add noscope to
+ case label list.
+ * gm2-compiler/M2GCCDeclare.mod: Replace ForeachFieldEnumerationDo
+ with ForeachLocalSymDo.
+ * gm2-compiler/M2Options.def (SetCaseEnumChecking): New procedure.
+ (CaseEnumChecking): New variable.
+ * gm2-compiler/M2Options.mod (SetCaseEnumChecking): New procedure.
+ (Module initialization): set CaseEnumChecking to FALSE.
+ * gm2-compiler/M2Quads.def (QuadOperator): Alphabetically ordered.
+ * gm2-compiler/M2Quads.mod (IsBackReferenceConditional): Add else
+ clause.
+ (BuildCaseStart): Pass selector expression to InitCaseBounds.
+ (CheckUninitializedVariablesAreUsed): Remove.
+ (IsInlineWithinBlock): Remove.
+ (AsmStatementsInBlock): Remove.
+ (CheckVariablesInBlock): Remove commented code.
+ (BeginVarient): Pass NulSym to InitCaseBounds.
+ * gm2-compiler/M2Range.mod (FoldCaseBounds): New local variable
+ errorGenerated. Add call to MissingCaseStatementBounds.
+ * gm2-compiler/P3Build.bnf (CaseEndStatement): Call ElseCase.
+ * gm2-compiler/PCSymBuild.mod (InitDesExpr): Add else clause.
+ (InitFunction): Add else clause.
+ (InitConvert): Add else clause.
+ (InitLeaf): Add else clause.
+ (InitBinary): Add else clause.
+ (InitUnary): Add else clause.
+ * gm2-compiler/SymbolTable.def (GetNth): Re-write comment.
+ (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
+ traversal.
+ * gm2-compiler/SymbolTable.mod (GetNth): Re-write comment.
+ Add case label for EnumerationSym and call GetItemFromList.
+ (ForeachFieldEnumerationDo): Re-write comment stating alphabetical
+ traversal.
+ (SymEnumeration): Add ListOfFields used for declaration order.
+ (MakeEnumeration): Initialize ListOfFields.
+ (PutFieldEnumeration): Include Field in ListOfFields.
+ * gm2-gcc/m2options.h (M2Options_SetCaseEnumChecking): New
+ function.
+ * gm2-lang.cc (gm2_langhook_handle_option): Add
+ OPT_Wcase_enum case and call M2Options_SetCaseEnumChecking.
+ * lang.opt (Wcase-enum): Add.
+
+2023-09-11 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/111330
+ * gm2-compiler/M2SymInit.mod (CheckReadBeforeInitQuad): Add
+ case labels LogicalDiffOp, DummyOp, OptParamOp and
+ InitAddressOp.
+
2023-08-20 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/111085
diff --git a/gcc/m2/Make-lang.in b/gcc/m2/Make-lang.in
index ca1581f..7338bfe 100644
--- a/gcc/m2/Make-lang.in
+++ b/gcc/m2/Make-lang.in
@@ -474,18 +474,21 @@ GM2_G=-g -fm2-g
GM2_CPP=
# GM2_DEBUG_STRMEM=-fcpp
GM2_DEBUG_STRMEM=
-GM2_FLAGS=-Wunused-variable -Wuninit-variable-checking \
- -fsoft-check-all \
- -fno-return -Wreturn-type \
+GM2_FLAGS=-fsoft-check-all \
+ -fno-return \
$(GM2_G) $(GM2_O) \
-funbounded-by-reference -fpim -fextended-opaque \
- -Wpedantic-cast -Wpedantic-param-names -ffunction-sections \
- -fdata-sections $(GM2_CPP) # -fauto-init
+ -Wcase-enum -Wpedantic-cast -Wpedantic-param-names \
+ -Wreturn-type -Wunused-variable -Wuninit-variable-checking \
+ -ffunction-sections -fdata-sections \
+ $(GM2_CPP) # -fauto-init
GM2_ISO_FLAGS=-fsoft-check-all $(GM2_G) $(GM2_O) \
- -fno-return -Wreturn-type \
+ -fno-return \
-funbounded-by-reference -fiso -fextended-opaque \
- -Wpedantic-cast -Wpedantic-param-names -ffunction-sections \
- -fdata-sections $(GM2_CPP)
+ -Wcase-enum -Wpedantic-cast -Wpedantic-param-names -Wreturn-type \
+ -Wunused-variable -Wuninit-variable-checking \
+ -ffunction-sections -fdata-sections \
+ $(GM2_CPP)
GM2_MIN_FLAGS=$(GM2_G) $(GM2_OS) \
-funbounded-by-reference -fextended-opaque \
-Wpedantic-cast -Wpedantic-param-names -fno-exceptions \
diff --git a/gcc/m2/gm2-compiler/M2CaseList.def b/gcc/m2/gm2-compiler/M2CaseList.def
index 224ad57..e135f14 100644
--- a/gcc/m2/gm2-compiler/M2CaseList.def
+++ b/gcc/m2/gm2-compiler/M2CaseList.def
@@ -36,10 +36,15 @@ FROM Lists IMPORT List ;
(*
PushCase - create a case entity and push it to an internal stack.
+ rec is NulSym if this is a CASE statement.
+ If rec is a record then it indicates a possible
+ varients reside in the record to check.
+ Both rec and va might be NulSym and then the expr
+ will contain the selector expression to a case statement.
Return the case id.
*)
-PROCEDURE PushCase (r: CARDINAL; v: CARDINAL) : CARDINAL ;
+PROCEDURE PushCase (rec, va, expr: CARDINAL) : CARDINAL ;
(*
@@ -114,6 +119,14 @@ PROCEDURE MissingCaseBounds (tokenno: CARDINAL; c: CARDINAL) : BOOLEAN ;
(*
+ MissingCaseStatementBounds - returns TRUE if the case statement has a missing
+ clause. It will also generate error messages.
+*)
+
+PROCEDURE MissingCaseStatementBounds (tokenno: CARDINAL; c: CARDINAL) : BOOLEAN ;
+
+
+(*
WriteCase - displays the case list.
*)
diff --git a/gcc/m2/gm2-compiler/M2CaseList.mod b/gcc/m2/gm2-compiler/M2CaseList.mod
index a478c88..b7155e3 100644
--- a/gcc/m2/gm2-compiler/M2CaseList.mod
+++ b/gcc/m2/gm2-compiler/M2CaseList.mod
@@ -24,24 +24,27 @@ IMPLEMENTATION MODULE M2CaseList ;
FROM M2Debug IMPORT Assert ;
FROM M2GCCDeclare IMPORT TryDeclareConstant, GetTypeMin, GetTypeMax ;
-FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorT0, MetaErrorT1, MetaErrorT2, MetaErrorT3, MetaErrorT4, MetaErrorString1 ;
+FROM M2MetaError IMPORT MetaError1, MetaError2, MetaErrorT0, MetaErrorT1, MetaErrorT2, MetaErrorT3, MetaErrorT4, MetaErrorStringT0, MetaErrorString1 ;
FROM M2Error IMPORT InternalError ;
FROM M2Range IMPORT OverlapsRange, IsEqual, IsGreater ;
FROM M2ALU IMPORT PushIntegerTree, PopIntegerTree, Addn, Sub, PushInt ;
FROM Indexing IMPORT Index, InitIndex, PutIndice, GetIndice, ForeachIndiceInIndexDo, HighIndice ;
-FROM Lists IMPORT InitList, IncludeItemIntoList ;
+FROM Lists IMPORT InitList, IncludeItemIntoList, RemoveItemFromList, NoOfItemsInList, GetItemFromList ;
FROM NameKey IMPORT KeyToCharStar ;
FROM SymbolConversion IMPORT GccKnowsAbout, Mod2Gcc, AddModGcc ;
-FROM DynamicStrings IMPORT InitString, InitStringCharStar, ConCat, Mark, KillString ;
+FROM DynamicStrings IMPORT InitString, InitStringCharStar, InitStringChar, ConCat, Mark, KillString ;
FROM m2tree IMPORT Tree ;
FROM m2block IMPORT RememberType ;
FROM m2type IMPORT GetMinFrom ;
+FROM m2expr IMPORT GetIntegerOne, CSTIntToString, CSTIntToChar ;
FROM Storage IMPORT ALLOCATE ;
-FROM M2Base IMPORT IsExpressionCompatible ;
+FROM M2Base IMPORT IsExpressionCompatible, Char ;
FROM M2Printf IMPORT printf1 ;
+FROM M2LexBuf IMPORT TokenToLocation ;
FROM SymbolTable IMPORT NulSym, IsConst, IsFieldVarient, IsRecord, IsRecordField, GetVarientTag, GetType,
- ForeachLocalSymDo, GetSymName, IsEnumeration, SkipType ;
+ ForeachLocalSymDo, GetSymName, IsEnumeration, SkipType, NoOfElements, GetNth,
+ IsSubrange ;
TYPE
RangePair = POINTER TO RECORD
@@ -65,6 +68,7 @@ TYPE
elseField : CARDINAL ;
record : CARDINAL ;
varient : CARDINAL ;
+ expression : CARDINAL ;
maxCaseId : CARDINAL ;
caseListArray: Index ;
currentCase : CaseList ;
@@ -87,37 +91,39 @@ VAR
(*
PushCase - create a case entity and push it to an internal stack.
- r, is NulSym if this is a CASE statement.
- If, r, is a record then it indicates it includes one
- or more varients reside in the record. The particular
- varient is, v.
+ rec is NulSym if this is a CASE statement.
+ If rec is a record then it indicates a possible
+ varients reside in the record to check.
+ Both rec and va might be NulSym and then the expr
+ will contain the selector expression to a case statement.
Return the case id.
*)
-PROCEDURE PushCase (r: CARDINAL; v: CARDINAL) : CARDINAL ;
+PROCEDURE PushCase (rec, va, expr: CARDINAL) : CARDINAL ;
VAR
c: CaseDescriptor ;
BEGIN
- INC(caseId) ;
- NEW(c) ;
- IF c=NIL
+ INC (caseId) ;
+ NEW (c) ;
+ IF c = NIL
THEN
InternalError ('out of memory error')
ELSE
WITH c^ DO
elseClause := FALSE ;
elseField := NulSym ;
- record := r ;
- varient := v ;
+ record := rec ;
+ varient := va ;
+ expression := expr ;
maxCaseId := 0 ;
- caseListArray := InitIndex(1) ;
+ caseListArray := InitIndex (1) ;
next := caseStack ;
currentCase := NIL
END ;
caseStack := c ;
- PutIndice(caseArray, caseId, c)
+ PutIndice (caseArray, caseId, c)
END ;
- RETURN( caseId )
+ RETURN caseId
END PushCase ;
@@ -505,7 +511,7 @@ END OverlappingCaseBounds ;
(*
- NewRanges -
+ NewRanges - return a new range from the freelist or heap.
*)
PROCEDURE NewRanges () : SetRange ;
@@ -525,7 +531,8 @@ END NewRanges ;
(*
- NewSet -
+ NewSet - returns a new set based on type with the low and high fields assigned
+ to the min and max values for the type.
*)
PROCEDURE NewSet (type: CARDINAL) : SetRange ;
@@ -543,7 +550,7 @@ END NewSet ;
(*
- DisposeRanges -
+ DisposeRanges - place set and its list onto the free list.
*)
PROCEDURE DisposeRanges (set: SetRange) : SetRange ;
@@ -569,40 +576,61 @@ END DisposeRanges ;
(*
+ RemoveRange - removes the range descriptor h from set and return the
+ possibly new head of set.
+*)
+
+PROCEDURE RemoveRange (set: SetRange; h: SetRange) : SetRange ;
+VAR
+ i: SetRange ;
+BEGIN
+ IF h=set
+ THEN
+ set := set^.next ;
+ h^.next := NIL ;
+ h := DisposeRanges(h) ;
+ ELSE
+ i := set ;
+ WHILE i^.next#h DO
+ i := i^.next
+ END ;
+ i^.next := h^.next ;
+ i := h ;
+ h := h^.next ;
+ i^.next := NIL ;
+ i := DisposeRanges(i)
+ END ;
+ RETURN set
+END RemoveRange ;
+
+
+(*
SubBitRange - subtracts bits, lo..hi, from, set.
*)
PROCEDURE SubBitRange (set: SetRange; lo, hi: Tree; tokenno: CARDINAL) : SetRange ;
VAR
- h, i : SetRange ;
+ h, i: SetRange ;
BEGIN
h := set ;
WHILE h#NIL DO
+ (* Check to see if a single set element h is obliterated by lo..hi. *)
IF (h^.high=NIL) OR IsEqual(h^.high, h^.low)
THEN
IF IsEqual(h^.low, lo) OR OverlapsRange(lo, hi, h^.low, h^.low)
THEN
- IF h=set
- THEN
- set := set^.next ;
- h^.next := NIL ;
- h := DisposeRanges(h) ;
- h := set
- ELSE
- i := set ;
- WHILE i^.next#h DO
- i := i^.next
- END ;
- i^.next := h^.next ;
- i := h ;
- h := h^.next ;
- i^.next := NIL ;
- i := DisposeRanges(i)
- END
+ set := RemoveRange (set, h) ;
+ h := set
ELSE
h := h^.next
END
+ (* Now check to see if the lo..hi match exactly with the set range. *)
+ ELSIF (h^.high#NIL) AND IsEqual (lo, h^.low) AND IsEqual (hi, h^.high)
+ THEN
+ (* Remove h and return as lo..hi have been removed. *)
+ RETURN RemoveRange (set, h)
ELSE
+ (* All other cases require modifying the existing set range. *)
IF OverlapsRange(lo, hi, h^.low, h^.high)
THEN
IF IsGreater(h^.low, lo) OR IsGreater(hi, h^.high)
@@ -647,104 +675,396 @@ END SubBitRange ;
(*
+ CheckLowHigh - checks to see the low value <= high value and issues an error
+ if this is not true.
+*)
+
+PROCEDURE CheckLowHigh (rp: RangePair) ;
+VAR
+ lo, hi: Tree ;
+ temp : CARDINAL ;
+BEGIN
+ lo := Mod2Gcc (rp^.low) ;
+ hi := Mod2Gcc (rp^.high) ;
+ IF IsGreater (lo, hi)
+ THEN
+ MetaErrorT2 (rp^.tokenno, 'case range should be low..high rather than high..low, range specified as {%1Euad}..{%2Euad}', rp^.low, rp^.high) ;
+ temp := rp^.high ;
+ rp^.high := rp^.low ;
+ rp^.low := temp
+ END
+END CheckLowHigh ;
+
+
+(*
ExcludeCaseRanges - excludes all case ranges found in, p, from, set
*)
-PROCEDURE ExcludeCaseRanges (set: SetRange; p: CaseDescriptor) : SetRange ;
+PROCEDURE ExcludeCaseRanges (set: SetRange; cd: CaseDescriptor) : SetRange ;
VAR
i, j: CARDINAL ;
- q : CaseList ;
- r : RangePair ;
+ cl : CaseList ;
+ rp : RangePair ;
BEGIN
- WITH p^ DO
+ WITH cd^ DO
i := 1 ;
- WHILE i<=maxCaseId DO
- q := GetIndice(caseListArray, i) ;
+ WHILE i <= maxCaseId DO
+ cl := GetIndice (caseListArray, i) ;
j := 1 ;
- WHILE j<=q^.maxRangeId DO
- r := GetIndice(q^.rangeArray, j) ;
- IF r^.high=NulSym
+ WHILE j <= cl^.maxRangeId DO
+ rp := GetIndice (cl^.rangeArray, j) ;
+ IF rp^.high = NulSym
THEN
- set := SubBitRange(set, Mod2Gcc(r^.low), Mod2Gcc(r^.low), r^.tokenno)
+ set := SubBitRange (set,
+ Mod2Gcc (rp^.low),
+ Mod2Gcc (rp^.low), rp^.tokenno)
ELSE
- set := SubBitRange(set, Mod2Gcc(r^.low), Mod2Gcc(r^.high), r^.tokenno)
+ CheckLowHigh (rp) ;
+ set := SubBitRange (set,
+ Mod2Gcc (rp^.low),
+ Mod2Gcc (rp^.high), rp^.tokenno)
END ;
- INC(j)
+ INC (j)
END ;
- INC(i)
+ INC (i)
END
END ;
- RETURN( set )
+ RETURN set
END ExcludeCaseRanges ;
VAR
- High, Low : Tree ;
errorString: String ;
(*
- DoEnumValues -
+ IncludeElement - only include enumeration field into errorString if it lies between low..high.
*)
-PROCEDURE DoEnumValues (sym: CARDINAL) ;
+PROCEDURE IncludeElement (enumList: List; field: CARDINAL; low, high: Tree) ;
+VAR
+ fieldTree: Tree ;
BEGIN
- IF (Low#NIL) AND IsEqual(Mod2Gcc(sym), Low)
+ IF field # NulSym
THEN
- errorString := ConCat(errorString, InitStringCharStar(KeyToCharStar(GetSymName(sym)))) ;
- Low := NIL
+ fieldTree := Mod2Gcc (field) ;
+ IF OverlapsRange (fieldTree, fieldTree, low, high)
+ THEN
+ IncludeItemIntoList (enumList, field)
+ END
+ END
+END IncludeElement ;
+
+
+(*
+ IncludeElements - only include enumeration field values low..high in errorString.
+*)
+
+PROCEDURE IncludeElements (type: CARDINAL; enumList: List; low, high: Tree) ;
+VAR
+ field : CARDINAL ;
+ i,
+ NoElements: CARDINAL ;
+BEGIN
+ NoElements := NoOfElements (type) ;
+ i := 1 ;
+ WHILE i <= NoElements DO
+ field := GetNth (type, i) ;
+ IncludeElement (enumList, field, low, high) ;
+ INC (i)
+ END
+END IncludeElements ;
+
+
+(*
+ ErrorRangeEnum - include enumeration fields Low to High in errorString.
+*)
+
+PROCEDURE ErrorRangeEnum (type: CARDINAL; set: SetRange; enumList: List) ;
+VAR
+ Low, High: Tree ;
+BEGIN
+ Low := set^.low ;
+ High := set^.high ;
+ IF Low = NIL
+ THEN
+ Low := High
+ END ;
+ IF High = NIL
+ THEN
+ High := Low
END ;
- IF (High#NIL) AND IsEqual(Mod2Gcc(sym), High)
+ IF (Low # NIL) AND (High # NIL)
THEN
- errorString := ConCat(errorString, Mark(InitString('..'))) ;
- errorString := ConCat(errorString, Mark(InitStringCharStar(KeyToCharStar(GetSymName(sym))))) ;
- High := NIL
+ IncludeElements (type, enumList, Low, High)
END
-END DoEnumValues ;
+END ErrorRangeEnum ;
+
+
+(*
+ ErrorRanges - return a list of all enumeration fields not present in the case statement.
+ The return value will be nil if type is not an enumeration type.
+*)
+
+PROCEDURE ErrorRanges (type: CARDINAL; set: SetRange) : List ;
+VAR
+ enumSet: List ;
+BEGIN
+ type := SkipType (type) ;
+ IF IsEnumeration (type)
+ THEN
+ InitList (enumSet) ;
+ WHILE set#NIL DO
+ ErrorRangeEnum (type, set, enumSet) ;
+ set := set^.next
+ END ;
+ RETURN enumSet
+ END ;
+ RETURN NIL
+END ErrorRanges ;
+
+
+(*
+ appendString - appends str to errorString.
+*)
+
+PROCEDURE appendString (str: String) ;
+BEGIN
+ errorString := ConCat (errorString, str)
+END appendString ;
+
+
+(*
+ appendEnum - appends enum to errorString.
+*)
+
+PROCEDURE appendEnum (enum: CARDINAL) ;
+BEGIN
+ appendString (Mark (InitStringCharStar (KeyToCharStar (GetSymName (enum)))))
+END appendEnum ;
+
+
+(*
+ appendStr - appends str to errorString.
+*)
+
+PROCEDURE appendStr (str: ARRAY OF CHAR) ;
+BEGIN
+ appendString (Mark (InitString (str)))
+END appendStr ;
(*
- ErrorRange -
+ EnumerateErrors - populate errorString with the contents of enumList.
*)
-PROCEDURE ErrorRange (p: CaseDescriptor; type: CARDINAL; set: SetRange) ;
+PROCEDURE EnumerateErrors (enumList: List) ;
+VAR
+ i, n: CARDINAL ;
BEGIN
- type := SkipType(type) ;
- IF IsEnumeration(type)
+ n := NoOfItemsInList (enumList) ;
+ IF (enumList # NIL) AND (n > 0)
THEN
- Low := set^.low ;
- High := set^.high ;
- IF IsEqual(Low, High)
+ IF n = 1
THEN
- High := NIL ;
- errorString := InitString('enumeration value ') ;
- ForeachLocalSymDo(type, DoEnumValues) ;
- errorString := ConCat(errorString, InitString(' is ignored by the CASE variant record {%1D}'))
+ errorString := InitString ('{%W}the missing enumeration field is: ') ;
ELSE
- errorString := InitString('enumeration values ') ;
- ForeachLocalSymDo(type, DoEnumValues) ;
- errorString := ConCat(errorString, InitString(' are ignored by the CASE variant record {%1D}'))
+ errorString := InitString ('{%W}the missing enumeration fields are: ') ;
END ;
- MetaErrorString1(errorString, p^.varient)
+ appendEnum (GetItemFromList (enumList, 1)) ;
+ IF n > 1
+ THEN
+ IF n > 2
+ THEN
+ i := 2 ;
+ WHILE i <= n-1 DO
+ appendStr (', ') ;
+ appendEnum (GetItemFromList (enumList, i)) ;
+ INC (i)
+ END
+ END ;
+ appendStr (' and ') ;
+ appendEnum (GetItemFromList (enumList, n))
+ END
END
-END ErrorRange ;
+END EnumerateErrors ;
(*
- ErrorRanges -
+ NoOfSetElements - return the number of set elements.
*)
-PROCEDURE ErrorRanges (p: CaseDescriptor; type: CARDINAL; set: SetRange) ;
+PROCEDURE NoOfSetElements (set: SetRange) : Tree ;
BEGIN
- WHILE set#NIL DO
- ErrorRange(p, type, set) ;
+ PushInt (0) ;
+ WHILE set # NIL DO
+ IF ((set^.low # NIL) AND (set^.high = NIL)) OR
+ ((set^.low = NIL) AND (set^.high # NIL))
+ THEN
+ PushInt (1) ;
+ Addn
+ ELSIF (set^.low # NIL) AND (set^.high # NIL)
+ THEN
+ PushIntegerTree (set^.high) ;
+ PushIntegerTree (set^.low) ;
+ Sub ;
+ PushInt (1) ;
+ Addn ;
+ Addn
+ END ;
set := set^.next
+ END ;
+ RETURN PopIntegerTree ()
+END NoOfSetElements ;
+
+
+(*
+ isPrintableChar - a cautious isprint.
+*)
+
+PROCEDURE isPrintableChar (value: Tree) : BOOLEAN ;
+BEGIN
+ CASE CSTIntToChar (value) OF
+
+ 'a'..'z': RETURN TRUE |
+ 'A'..'Z': RETURN TRUE |
+ '0'..'9': RETURN TRUE |
+ '!', '@': RETURN TRUE |
+ '#', '$': RETURN TRUE |
+ '%', '^': RETURN TRUE |
+ '&', '*': RETURN TRUE |
+ '(', ')': RETURN TRUE |
+ '[', ']': RETURN TRUE |
+ '{', '}': RETURN TRUE |
+ '-', '+': RETURN TRUE |
+ '_', '=': RETURN TRUE |
+ ':', ';': RETURN TRUE |
+ "'", '"': RETURN TRUE |
+ ',', '.': RETURN TRUE |
+ '<', '>': RETURN TRUE |
+ '/', '?': RETURN TRUE |
+ '\', '|': RETURN TRUE |
+ '~', '`': RETURN TRUE |
+ ' ' : RETURN TRUE
+
+ ELSE
+ RETURN FALSE
END
-END ErrorRanges ;
+END isPrintableChar ;
+
+
+(*
+ appendTree - append tree value to the errorString. It attempts to pretty print
+ CHAR constants and will fall back to CHR (x) if necessary.
+*)
+
+PROCEDURE appendTree (value: Tree; type: CARDINAL) ;
+BEGIN
+ IF SkipType (GetType (type)) = Char
+ THEN
+ IF isPrintableChar (value)
+ THEN
+ IF CSTIntToChar (value) = "'"
+ THEN
+ appendString (InitStringChar ('"')) ;
+ appendString (InitStringChar (CSTIntToChar (value))) ;
+ appendString (InitStringChar ('"'))
+ ELSE
+ appendString (InitStringChar ("'")) ;
+ appendString (InitStringChar (CSTIntToChar (value))) ;
+ appendString (InitStringChar ("'"))
+ END
+ ELSE
+ appendString (InitStringCharStar ('CHR (')) ;
+ appendString (InitStringCharStar (CSTIntToString (value))) ;
+ appendString (InitStringChar (')'))
+ END
+ ELSE
+ appendString (InitStringCharStar (CSTIntToString (value)))
+ END
+END appendTree ;
+
+
+(*
+ SubrangeErrors - create an errorString containing all set ranges.
+*)
+
+PROCEDURE SubrangeErrors (subrangetype: CARDINAL; set: SetRange) ;
+VAR
+ sr : SetRange ;
+ rangeNo : CARDINAL ;
+ nMissing,
+ zero, one: Tree ;
+BEGIN
+ nMissing := NoOfSetElements (set) ;
+ PushInt (0) ;
+ zero := PopIntegerTree () ;
+ IF IsGreater (nMissing, zero)
+ THEN
+ PushInt (1) ;
+ one := PopIntegerTree () ;
+ IF IsGreater (nMissing, one)
+ THEN
+ errorString := InitString ('{%W}there are a total of ')
+ ELSE
+ errorString := InitString ('{%W}there is a total of ')
+ END ;
+ appendString (InitStringCharStar (CSTIntToString (nMissing))) ;
+ appendStr (' missing values in the subrange, the {%kCASE} statement needs labels (or an {%kELSE} statement)') ;
+ appendStr (' for the following values: ') ;
+ sr := set ;
+ rangeNo := 0 ;
+ WHILE sr # NIL DO
+ INC (rangeNo) ;
+ IF rangeNo > 1
+ THEN
+ IF sr^.next = NIL
+ THEN
+ appendStr (' and ')
+ ELSE
+ appendStr (', ')
+ END
+ END ;
+ IF sr^.low = NIL
+ THEN
+ appendTree (sr^.high, subrangetype)
+ ELSIF (sr^.high = NIL) OR IsEqual (sr^.low, sr^.high)
+ THEN
+ appendTree (sr^.low, subrangetype)
+ ELSE
+ appendTree (sr^.low, subrangetype) ;
+ appendStr ('..') ;
+ appendTree (sr^.high, subrangetype)
+ END ;
+ sr := sr^.next
+ END
+ END
+END SubrangeErrors ;
+
+
+(*
+ EmitMissingRangeErrors - emits a singular/plural error message for an enumeration type.
+*)
+
+PROCEDURE EmitMissingRangeErrors (tokenno: CARDINAL; type: CARDINAL; set: SetRange) ;
+BEGIN
+ errorString := NIL ;
+ IF IsEnumeration (type)
+ THEN
+ EnumerateErrors (ErrorRanges (type, set))
+ ELSIF IsSubrange (type)
+ THEN
+ SubrangeErrors (type, set)
+ END ;
+ IF errorString # NIL
+ THEN
+ MetaErrorStringT0 (tokenno, errorString)
+ END
+END EmitMissingRangeErrors ;
(*
- MissingCaseBounds - returns TRUE if there were any missing bounds
+ MissingCaseBounds - returns true if there were any missing bounds
in the varient record case list, c. It will
generate an error message for each missing
bounds found.
@@ -757,61 +1077,110 @@ VAR
missing: BOOLEAN ;
set : SetRange ;
BEGIN
- p := GetIndice(caseArray, c) ;
+ p := GetIndice (caseArray, c) ;
missing := FALSE ;
WITH p^ DO
- IF (record#NulSym) AND (varient#NulSym) AND (NOT elseClause)
+ IF NOT elseClause
THEN
- (* not a CASE statement, but a varient record containing without an ELSE clause *)
- type := GetVariantTagType(varient) ;
- set := NewSet(type) ;
- set := ExcludeCaseRanges(set, p) ;
- IF set#NIL
+ IF (record # NulSym) AND (varient # NulSym)
THEN
- missing := TRUE ;
- MetaErrorT2 (tokenno,
- 'not all variant record alternatives in the {%kCASE} clause are specified, hint you either need to specify each value of {%2ad} or use an {%kELSE} clause',
- varient, type) ;
- ErrorRanges(p, type, set)
- END ;
- set := DisposeRanges(set)
+ (* Not a case statement, but a varient record without an else clause. *)
+ type := GetVariantTagType (varient) ;
+ set := NewSet (type) ;
+ set := ExcludeCaseRanges (set, p) ;
+ IF set # NIL
+ THEN
+ missing := TRUE ;
+ MetaErrorT2 (tokenno,
+ 'not all variant record alternatives in the {%kCASE} clause are specified, hint you either need to specify each value of {%2ad} or use an {%kELSE} clause',
+ varient, type) ;
+ EmitMissingRangeErrors (tokenno, type, set)
+ END ;
+ set := DisposeRanges (set)
+ END
END
END ;
- RETURN( missing )
+ RETURN missing
END MissingCaseBounds ;
(*
- InRangeList - returns TRUE if the value, tag, is defined in the case list.
+ MissingCaseStatementBounds - returns true if the case statement has a missing
+ clause. It will also generate error messages.
+*)
-PROCEDURE InRangeList (cl: CaseList; tag: CARDINAL) : BOOLEAN ;
+PROCEDURE MissingCaseStatementBounds (tokenno: CARDINAL; c: CARDINAL) : BOOLEAN ;
VAR
- i, h: CARDINAL ;
+ p : CaseDescriptor ;
+ type : CARDINAL ;
+ missing: BOOLEAN ;
+ set : SetRange ;
+BEGIN
+ p := GetIndice (caseArray, c) ;
+ missing := FALSE ;
+ WITH p^ DO
+ IF NOT elseClause
+ THEN
+ IF expression # NulSym
+ THEN
+ type := SkipType (GetType (expression)) ;
+ IF type # NulSym
+ THEN
+ IF IsEnumeration (type) OR IsSubrange (type)
+ THEN
+ (* A case statement sequence without an else clause but
+ selecting using an enumeration type. *)
+ set := NewSet (type) ;
+ set := ExcludeCaseRanges (set, p) ;
+ IF set # NIL
+ THEN
+ missing := TRUE ;
+ MetaErrorT1 (tokenno,
+ 'not all {%1Wd} values in the {%kCASE} statements are specified, hint you either need to specify each value of {%1ad} or use an {%kELSE} clause',
+ type) ;
+ EmitMissingRangeErrors (tokenno, type, set)
+ END ;
+ set := DisposeRanges (set)
+ END
+ END
+ END
+ END
+ END ;
+ RETURN missing
+END MissingCaseStatementBounds ;
+
+
+(*
+ InRangeList - returns true if the value, tag, is defined in the case list.
+
+procedure InRangeList (cl: CaseList; tag: cardinal) : boolean ;
+var
+ i, h: cardinal ;
r : RangePair ;
a : Tree ;
-BEGIN
- WITH cl^ DO
+begin
+ with cl^ do
i := 1 ;
h := HighIndice(rangeArray) ;
- WHILE i<=h DO
+ while i<=h do
r := GetIndice(rangeArray, i) ;
- WITH r^ DO
- IF high=NulSym
- THEN
+ with r^ do
+ if high=NulSym
+ then
a := Mod2Gcc(low)
- ELSE
+ else
a := Mod2Gcc(high)
- END ;
- IF OverlapsRange(Mod2Gcc(low), a, Mod2Gcc(tag), Mod2Gcc(tag))
- THEN
- RETURN( TRUE )
- END
- END ;
- INC(i)
- END
- END ;
- RETURN( FALSE )
-END InRangeList ;
+ end ;
+ if OverlapsRange(Mod2Gcc(low), a, Mod2Gcc(tag), Mod2Gcc(tag))
+ then
+ return( true )
+ end
+ end ;
+ inc(i)
+ end
+ end ;
+ return( false )
+end InRangeList ;
*)
@@ -821,7 +1190,7 @@ END InRangeList ;
PROCEDURE WriteCase (c: CARDINAL) ;
BEGIN
- (* this debugging procedure should be finished. *)
+ (* this debugging PROCEDURE should be finished. *)
printf1 ("%d", c)
END WriteCase ;
@@ -834,32 +1203,32 @@ PROCEDURE checkTypes (constant, type: CARDINAL) : BOOLEAN ;
VAR
consttype: CARDINAL ;
BEGIN
- IF (constant#NulSym) AND IsConst(constant)
+ IF (constant # NulSym) AND IsConst (constant)
THEN
- consttype := GetType(constant) ;
- IF NOT IsExpressionCompatible(consttype, type)
+ consttype := GetType (constant) ;
+ IF NOT IsExpressionCompatible (consttype, type)
THEN
- MetaError2('the CASE statement variant tag {%1ad} must be type compatible with the constant {%2Da:is a {%2d}}',
- type, constant) ;
- RETURN( FALSE )
+ MetaError2 ('the case statement variant tag {%1ad} must be type compatible with the constant {%2Da:is a {%2d}}',
+ type, constant) ;
+ RETURN FALSE
END
END ;
- RETURN( TRUE )
+ RETURN TRUE
END checkTypes ;
(*
- inRange - returns TRUE if, min <= i <= max.
+ inRange - returns true if, min <= i <= max.
*)
PROCEDURE inRange (i, min, max: CARDINAL) : BOOLEAN ;
BEGIN
- RETURN( OverlapsRange(Mod2Gcc(i), Mod2Gcc(i), Mod2Gcc(min), Mod2Gcc(max)) )
+ RETURN OverlapsRange (Mod2Gcc (i), Mod2Gcc (i), Mod2Gcc (min), Mod2Gcc (max))
END inRange ;
(*
- TypeCaseBounds - returns TRUE if all bounds in case list, c, are
+ TypeCaseBounds - returns true if all bounds in case list, c, are
compatible with the tagged type.
*)
@@ -915,11 +1284,11 @@ BEGIN
THEN
compatible := FALSE
END ;
- INC(j)
+ INC (j)
END ;
- INC(i)
+ INC (i)
END ;
- RETURN( compatible )
+ RETURN compatible
END
END TypeCaseBounds ;
diff --git a/gcc/m2/gm2-compiler/M2Error.mod b/gcc/m2/gm2-compiler/M2Error.mod
index 47c4c39..8f42d5f 100644
--- a/gcc/m2/gm2-compiler/M2Error.mod
+++ b/gcc/m2/gm2-compiler/M2Error.mod
@@ -868,7 +868,8 @@ BEGIN
implementation: desc := InitString ("In implementation module") |
program : desc := InitString ("In program module") |
module : desc := InitString ("In inner module") |
- procedure : desc := InitString ("In procedure")
+ procedure : desc := InitString ("In procedure") |
+ noscope : desc := InitString ("Unknown scope")
END
END ;
diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
index 37235f0..3ce9cb2 100644
--- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod
+++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod
@@ -117,7 +117,7 @@ FROM SymbolTable IMPORT NulSym,
ForeachOAFamily, GetOAFamily,
IsModuleWithinProcedure, IsVariableSSA,
IsVariableAtAddress, IsConstructorConstant,
- ForeachLocalSymDo, ForeachFieldEnumerationDo,
+ ForeachLocalSymDo,
ForeachProcedureDo, ForeachModuleDo,
ForeachInnerModuleDo, ForeachImportedDo,
ForeachExportedDo, PrintInitialized ;
@@ -4935,7 +4935,7 @@ BEGIN
THEN
MinEnumerationField := NulSym ;
MaxEnumerationField := NulSym ;
- ForeachFieldEnumerationDo(type, FindMinMaxEnum) ;
+ ForeachLocalSymDo (type, FindMinMaxEnum) ;
RETURN( MinEnumerationField )
ELSIF IsBaseType(type)
THEN
@@ -4974,7 +4974,7 @@ BEGIN
THEN
MinEnumerationField := NulSym ;
MaxEnumerationField := NulSym ;
- ForeachFieldEnumerationDo(type, FindMinMaxEnum) ;
+ ForeachLocalSymDo (type, FindMinMaxEnum) ;
RETURN( MaxEnumerationField )
ELSIF IsBaseType(type)
THEN
@@ -5186,7 +5186,6 @@ END CheckResolveSubrange ;
PROCEDURE TypeConstFullyDeclared (sym: CARDINAL) : Tree ;
VAR
t: Tree ;
- n: Name ;
BEGIN
IF IsEnumeration(sym)
THEN
@@ -5294,7 +5293,7 @@ PROCEDURE IsEnumerationDependants (sym: CARDINAL; q: IsAction) : BOOLEAN ;
BEGIN
action := q ;
enumDeps := TRUE ;
- ForeachFieldEnumerationDo(sym, IsFieldEnumerationDependants) ;
+ ForeachLocalSymDo (sym, IsFieldEnumerationDependants) ;
RETURN( enumDeps )
END IsEnumerationDependants ;
@@ -5305,7 +5304,7 @@ END IsEnumerationDependants ;
PROCEDURE WalkEnumerationDependants (sym: CARDINAL; p: WalkAction) ;
BEGIN
- ForeachFieldEnumerationDo(sym, p)
+ ForeachLocalSymDo (sym, p)
END WalkEnumerationDependants ;
@@ -5319,7 +5318,7 @@ VAR
high, low: CARDINAL ;
BEGIN
GetSubrange(sym, high, low) ;
- CheckResolveSubrange(sym) ;
+ CheckResolveSubrange (sym) ;
type := GetSType(sym) ;
IF type#NulSym
THEN
diff --git a/gcc/m2/gm2-compiler/M2Options.def b/gcc/m2/gm2-compiler/M2Options.def
index d8d3845..6eefe7c 100644
--- a/gcc/m2/gm2-compiler/M2Options.def
+++ b/gcc/m2/gm2-compiler/M2Options.def
@@ -70,7 +70,7 @@ EXPORT QUALIFIED SetReturnCheck, SetNilCheck, SetCaseCheck,
IndexChecking, RangeChecking,
ReturnChecking, CaseElseChecking,
AutoInit,
- VariantValueChecking,
+ VariantValueChecking, CaseEnumChecking,
UnusedVariableChecking, UnusedParameterChecking,
UninitVariableChecking, SetUninitVariableChecking,
UninitVariableConditionalChecking,
@@ -97,7 +97,7 @@ EXPORT QUALIFIED SetReturnCheck, SetNilCheck, SetCaseCheck,
SetGenModuleList, GetGenModuleFilename, SharedFlag,
SetB, GetB, SetMD, GetMD, SetMMD, GetMMD, SetObj, GetObj,
GetMQ, SetMQ, SetM2Prefix, GetM2Prefix,
- SetM2PathName, GetM2PathName ;
+ SetM2PathName, GetM2PathName, SetCaseEnumChecking ;
VAR
@@ -149,6 +149,8 @@ VAR
VariantValueChecking, (* Should we check all values are present *)
(* in a variant record? True for ISO and *)
(* false for PIM. *)
+ CaseEnumChecking, (* Should the compiler check for missing *)
+ (* enumeration labels in a case statement? *)
Quiet, (* -fquiet option specified. *)
LineDirectives, (* Should compiler understand preprocessor *)
(* # linenumber "filename" markers? *)
@@ -937,6 +939,13 @@ PROCEDURE SetUninitVariableChecking (value: BOOLEAN; arg: ADDRESS) : INTEGER ;
(*
+ SetCaseEnumChecking - sets the CaseEnumChecking to value.
+*)
+
+PROCEDURE SetCaseEnumChecking (value: BOOLEAN) ;
+
+
+(*
FinaliseOptions - once all options have been parsed we set any inferred
values.
*)
diff --git a/gcc/m2/gm2-compiler/M2Options.mod b/gcc/m2/gm2-compiler/M2Options.mod
index 1174a0d..f265aa5 100644
--- a/gcc/m2/gm2-compiler/M2Options.mod
+++ b/gcc/m2/gm2-compiler/M2Options.mod
@@ -1193,7 +1193,8 @@ BEGIN
UninitVariableChecking := value ;
PedanticCast := value ;
PedanticParamNames := value ;
- StyleChecking := value
+ StyleChecking := value ;
+ CaseEnumChecking := value
END SetWall ;
@@ -1405,6 +1406,16 @@ BEGIN
END SetUninitVariableChecking ;
+(*
+ SetCaseEnumChecking - sets the CaseEnumChecking to value.
+*)
+
+PROCEDURE SetCaseEnumChecking (value: BOOLEAN) ;
+BEGIN
+ CaseEnumChecking := value
+END SetCaseEnumChecking ;
+
+
BEGIN
cflag := FALSE ; (* -c. *)
RuntimeModuleOverride := InitString (DefaultRuntimeModuleOverride) ;
@@ -1477,6 +1488,7 @@ BEGIN
DumpDir := NIL ;
UninitVariableChecking := FALSE ;
UninitVariableConditionalChecking := FALSE ;
+ CaseEnumChecking := FALSE ;
M2Prefix := InitString ('') ;
M2PathName := InitString ('')
END M2Options.
diff --git a/gcc/m2/gm2-compiler/M2Quads.def b/gcc/m2/gm2-compiler/M2Quads.def
index 3fc9dfb..743589f 100644
--- a/gcc/m2/gm2-compiler/M2Quads.def
+++ b/gcc/m2/gm2-compiler/M2Quads.def
@@ -150,38 +150,93 @@ EXPORT QUALIFIED StartBuildDefFile, StartBuildModFile, EndBuildFile,
TYPE
- QuadOperator = (BecomesOp, IndrXOp, XIndrOp, ArrayOp, ElementSizeOp,
- RecordFieldOp,
- AddrOp, SizeOp,
- IfEquOp, IfLessEquOp, IfGreEquOp, IfGreOp, IfLessOp,
- IfNotEquOp, IfInOp, IfNotInOp,
- CallOp, ParamOp, OptParamOp, ReturnOp, ReturnValueOp, FunctValueOp,
- NewLocalVarOp, KillLocalVarOp,
- ProcedureScopeOp, ModuleScopeOp,
- DummyOp,
- GotoOp, InitEndOp, InitStartOp,
- FinallyStartOp, FinallyEndOp,
- RetryOp, TryOp, CatchBeginOp, CatchEndOp, ThrowOp,
- NegateOp, AddOp, SubOp, MultOp,
- DivM2Op, ModM2Op,
- DivCeilOp, ModCeilOp,
- DivFloorOp, ModFloorOp, DivTruncOp, ModTruncOp,
- LogicalOrOp, LogicalAndOp, LogicalXorOp, LogicalDiffOp,
+ QuadOperator = (AddOp,
+ AddrOp,
ArithAddOp,
- InclOp, ExclOp, LogicalShiftOp, LogicalRotateOp,
- UnboundedOp, HighOp,
- CoerceOp, ConvertOp, CastOp,
+ ArrayOp,
+ BecomesOp,
+ BuiltinConstOp,
+ BuiltinTypeInfoOp,
+ CallOp,
+ CastOp,
+ CatchBeginOp,
+ CatchEndOp,
+ CodeOffOp,
+ CodeOnOp,
+ CoerceOp,
+ ConvertOp,
+ DivCeilOp,
+ DivFloorOp,
+ DivM2Op,
+ DivTruncOp,
+ DummyOp,
+ ElementSizeOp,
+ EndFileOp,
+ ErrorOp,
+ ExclOp,
+ FinallyEndOp,
+ FinallyStartOp,
+ FunctValueOp,
+ GotoOp,
+ HighOp,
+ IfEquOp,
+ IfGreEquOp,
+ IfGreOp,
+ IfInOp,
+ IfLessEquOp,
+ IfLessOp,
+ IfNotEquOp,
+ IfNotInOp,
+ InclOp,
+ IndrXOp,
InitAddressOp,
- StartDefFileOp, StartModFileOp, EndFileOp,
- CodeOnOp, CodeOffOp,
- ProfileOnOp, ProfileOffOp,
- OptimizeOnOp, OptimizeOffOp,
- InlineOp, LineNumberOp, StatementNoteOp,
- SubrangeLowOp, SubrangeHighOp,
- BuiltinConstOp, BuiltinTypeInfoOp, StandardFunctionOp,
- SavePriorityOp, RestorePriorityOp,
- SaveExceptionOp, RestoreExceptionOp,
- RangeCheckOp, ErrorOp) ;
+ InitEndOp,
+ InitStartOp,
+ InlineOp,
+ KillLocalVarOp,
+ LineNumberOp,
+ LogicalAndOp,
+ LogicalDiffOp,
+ LogicalOrOp,
+ LogicalRotateOp,
+ LogicalShiftOp,
+ LogicalXorOp,
+ ModCeilOp,
+ ModFloorOp,
+ ModM2Op,
+ ModTruncOp,
+ ModuleScopeOp,
+ MultOp,
+ NegateOp,
+ NewLocalVarOp,
+ OptimizeOffOp,
+ OptimizeOnOp,
+ OptParamOp,
+ ParamOp,
+ ProcedureScopeOp,
+ ProfileOffOp,
+ ProfileOnOp,
+ RangeCheckOp,
+ RecordFieldOp,
+ RestoreExceptionOp,
+ RestorePriorityOp,
+ RetryOp,
+ ReturnOp,
+ ReturnValueOp,
+ SaveExceptionOp,
+ SavePriorityOp,
+ SizeOp,
+ StandardFunctionOp,
+ StartDefFileOp,
+ StartModFileOp,
+ StatementNoteOp,
+ SubOp,
+ SubrangeHighOp,
+ SubrangeLowOp,
+ ThrowOp,
+ TryOp,
+ UnboundedOp,
+ XIndrOp) ;
(*
diff --git a/gcc/m2/gm2-compiler/M2Quads.mod b/gcc/m2/gm2-compiler/M2Quads.mod
index c11e61f..be837b3 100644
--- a/gcc/m2/gm2-compiler/M2Quads.mod
+++ b/gcc/m2/gm2-compiler/M2Quads.mod
@@ -693,6 +693,8 @@ BEGIN
RETURN( TRUE )
END
+ ELSE
+ RETURN FALSE
END ;
i := GetNextQuad (i)
END ;
@@ -4660,15 +4662,17 @@ END BuildEndFor ;
<- Ptr
+------------+
- Empty | 0 | 0 |
- |------------|
| 0 | 0 |
|------------|
+ | 0 | 0 |
+ +-------------+ |------------|
+ | Expr | | | Expr | |
+ |-------------| |------------|
*)
PROCEDURE BuildCaseStart ;
BEGIN
- BuildRange (InitCaseBounds (PushCase (NulSym, NulSym))) ;
+ BuildRange (InitCaseBounds (PushCase (NulSym, NulSym, OperandT (1)))) ;
PushBool (0, 0) ; (* BackPatch list initialized *)
PushBool (0, 0) (* Room for a boolean expression *)
END BuildCaseStart ;
@@ -10760,142 +10764,12 @@ END LoopAnalysis ;
(*
- CheckUninitializedVariablesAreUsed - checks to see whether uninitialized variables are used.
-*)
-
-PROCEDURE CheckUninitializedVariablesAreUsed (BlockSym: CARDINAL) ;
-VAR
- i, n,
- ParamNo : CARDINAL ;
- ReadStart,
- ReadEnd,
- WriteStart,
- WriteEnd : CARDINAL ;
-BEGIN
- IF IsProcedure(BlockSym)
- THEN
- ParamNo := NoOfParam(BlockSym)
- ELSE
- ParamNo := 0
- END ;
- i := 1 ;
- REPEAT
- n := GetNth(BlockSym, i) ;
- IF (n#NulSym) AND (NOT IsTemporary(n)) AND
- (IsProcedure(BlockSym) OR (((IsDefImp(BlockSym) AND (GetMainModule()=BlockSym)) OR IsModule(BlockSym)) AND
- (NOT IsExported(BlockSym, n))))
- THEN
- GetReadQuads(n, RightValue, ReadStart, ReadEnd) ;
- GetWriteQuads(n, RightValue, WriteStart, WriteEnd) ;
- IF i<=ParamNo
- THEN
- (* n is a parameter *)
- IF UnusedParameterChecking
- THEN
- IF ReadStart = 0
- THEN
- IF WriteStart = 0
- THEN
- MetaError2 ('unused parameter {%1WMad} in procedure {%2ad}', n, BlockSym)
- ELSE
- IF NOT IsVarParam (BlockSym, i)
- THEN
- (* --fixme-- reconsider this. *)
- (* MetaError2 ('writing to a non var parameter {%1WMad} and never reading from it in procedure {%2ad}',
- n, BlockSym) *)
- END
- END
- END
- END
- ELSE
- (* n is a local variable *)
- IF UnusedVariableChecking
- THEN
- IF ReadStart=0
- THEN
- IF WriteStart=0
- THEN
- MetaError2 ('unused variable {%1WMad} in {%2d} {%2ad}', n, BlockSym)
- ELSE
- (* --fixme-- reconsider this. *)
- (* MetaError2 ('writing to a variable {%1WMad} and never reading from it in {%2d} {%2ad}', n, BlockSym) *)
- END
- ELSE
- IF WriteStart=0
- THEN
- MetaError2 ('variable {%1WMad} is being used but it is never initialized in {%2d} {%2ad}', n, BlockSym)
- END
- END
- END
- END
- END ;
- INC(i)
- UNTIL n=NulSym
-END CheckUninitializedVariablesAreUsed ;
-
-
-(*
- IsInlineWithinBlock - returns TRUE if an InlineOp is found
- within start..end.
-*)
-
-PROCEDURE IsInlineWithinBlock (start, end: CARDINAL) : BOOLEAN ;
-VAR
- op : QuadOperator ;
- op1, op2, op3: CARDINAL ;
-BEGIN
- WHILE (start#end) AND (start#0) DO
- GetQuad(start, op, op1, op2, op3) ;
- IF op=InlineOp
- THEN
- RETURN( TRUE )
- END ;
- start := GetNextQuad(start)
- END ;
- RETURN( FALSE )
-END IsInlineWithinBlock ;
-
-
-(*
- AsmStatementsInBlock - returns TRUE if an ASM statement is found within a block, BlockSym.
-*)
-
-PROCEDURE AsmStatementsInBlock (BlockSym: CARDINAL) : BOOLEAN ;
-VAR
- Scope,
- StartInit,
- EndInit,
- StartFinish,
- EndFinish : CARDINAL ;
-BEGIN
- IF IsProcedure(BlockSym)
- THEN
- GetProcedureQuads(BlockSym, Scope, StartInit, EndInit) ;
- RETURN( IsInlineWithinBlock(StartInit, EndInit) )
- ELSE
- GetModuleQuads(BlockSym, StartInit, EndInit, StartFinish, EndFinish) ;
- RETURN( IsInlineWithinBlock(StartInit, EndInit) OR
- IsInlineWithinBlock(StartFinish, EndFinish) )
- END
-END AsmStatementsInBlock ;
-
-
-(*
CheckVariablesInBlock - given a block, BlockSym, check whether all variables are used.
*)
PROCEDURE CheckVariablesInBlock (BlockSym: CARDINAL) ;
BEGIN
- CheckVariablesAndParameterTypesInBlock (BlockSym) ;
- (*
- IF UnusedVariableChecking OR UnusedParameterChecking
- THEN
- IF (NOT AsmStatementsInBlock (BlockSym))
- THEN
- CheckUninitializedVariablesAreUsed (BlockSym)
- END
- END
- *)
+ CheckVariablesAndParameterTypesInBlock (BlockSym)
END CheckVariablesInBlock ;
@@ -14434,7 +14308,7 @@ BEGIN
Assert(IsRecord(r) OR IsFieldVarient(r)) ;
v := GetRecordOrField() ;
Assert(IsVarient(v)) ;
- BuildRange(InitCaseBounds(PushCase(r, v)))
+ BuildRange(InitCaseBounds(PushCase(r, v, NulSym)))
END BeginVarient ;
diff --git a/gcc/m2/gm2-compiler/M2Range.mod b/gcc/m2/gm2-compiler/M2Range.mod
index 0f8678e..0f7c740 100644
--- a/gcc/m2/gm2-compiler/M2Range.mod
+++ b/gcc/m2/gm2-compiler/M2Range.mod
@@ -56,7 +56,7 @@ FROM M2Debug IMPORT Assert ;
FROM Indexing IMPORT Index, InitIndex, InBounds, PutIndice, GetIndice ;
FROM Storage IMPORT ALLOCATE ;
FROM M2ALU IMPORT PushIntegerTree, PushInt, ConvertToInt, Equ, Gre, Less, GreEqu ;
-FROM M2Options IMPORT VariantValueChecking ;
+FROM M2Options IMPORT VariantValueChecking, CaseEnumChecking ;
FROM M2Error IMPORT Error, InternalError, ErrorFormat0, ErrorFormat1, ErrorFormat2, FlushErrors,
GetAnnounceScope ;
@@ -103,8 +103,9 @@ FROM M2Base IMPORT Nil, IsRealType, GetBaseTypeMinMax,
ExceptionParameterBounds,
ExceptionNo ;
-FROM M2CaseList IMPORT CaseBoundsResolved, OverlappingCaseBounds, WriteCase, MissingCaseBounds, TypeCaseBounds ;
-
+FROM M2CaseList IMPORT CaseBoundsResolved, OverlappingCaseBounds,
+ WriteCase, MissingCaseBounds, TypeCaseBounds,
+ MissingCaseStatementBounds ;
TYPE
TypeOfRange = (assignment, returnassignment, subrangeassignment,
@@ -1915,12 +1916,14 @@ END FoldDynamicArraySubscript ;
PROCEDURE FoldCaseBounds (tokenno: CARDINAL; q: CARDINAL; r: CARDINAL) ;
VAR
- p: Range ;
+ p : Range ;
+ errorGenerated: BOOLEAN ;
BEGIN
p := GetIndice(RangeIndex, r) ;
WITH p^ DO
IF CaseBoundsResolved(tokenno, caseList)
THEN
+ errorGenerated := FALSE ;
IF TypeCaseBounds (caseList)
THEN
(* nothing to do *)
@@ -1928,14 +1931,26 @@ BEGIN
IF OverlappingCaseBounds(caseList)
THEN
PutQuad(q, ErrorOp, NulSym, NulSym, r) ;
- IF VariantValueChecking AND MissingCaseBounds(tokenno, caseList)
+ errorGenerated := TRUE
+ END ;
+ IF VariantValueChecking AND MissingCaseBounds(tokenno, caseList)
+ THEN
+ IF NOT errorGenerated
THEN
- (* nothing to do *)
+ PutQuad(q, ErrorOp, NulSym, NulSym, r) ;
+ errorGenerated := TRUE
END
- ELSIF VariantValueChecking AND MissingCaseBounds(tokenno, caseList)
+ END ;
+ IF CaseEnumChecking AND MissingCaseStatementBounds (tokenno, caseList)
+ THEN
+ IF NOT errorGenerated
+ THEN
+ PutQuad(q, ErrorOp, NulSym, NulSym, r) ;
+ errorGenerated := TRUE
+ END
+ END ;
+ IF NOT errorGenerated
THEN
- PutQuad(q, ErrorOp, NulSym, NulSym, r)
- ELSE
SubQuad(q)
END
END
@@ -1966,6 +1981,10 @@ BEGIN
IF MissingCaseBounds (tokenno, caseList)
THEN
(* nothing to do *)
+ END ;
+ IF CaseEnumChecking AND MissingCaseStatementBounds (tokenno, caseList)
+ THEN
+ (* nothing to do *)
END
ELSE
MetaErrorT0 (tokenno, '{%E}the CASE statement ranges must be constants')
diff --git a/gcc/m2/gm2-compiler/M2SymInit.mod b/gcc/m2/gm2-compiler/M2SymInit.mod
index b629ed8..47026a8 100644
--- a/gcc/m2/gm2-compiler/M2SymInit.mod
+++ b/gcc/m2/gm2-compiler/M2SymInit.mod
@@ -341,7 +341,6 @@ END TrySetInitialized ;
PROCEDURE SetFieldInitializedNo (desc: InitDesc;
fieldlist: List; level: CARDINAL) : BOOLEAN ;
VAR
- init : BOOLEAN ;
nsym : CARDINAL ;
fdesc: InitDesc ;
BEGIN
@@ -360,7 +359,9 @@ BEGIN
TrySetInitialized (desc) ;
RETURN desc^.initialized
ELSE
- init := SetFieldInitializedNo (fdesc, fieldlist, level + 1) ;
+ IF SetFieldInitializedNo (fdesc, fieldlist, level + 1)
+ THEN
+ END ;
TrySetInitialized (desc) ;
RETURN desc^.initialized
END
@@ -416,12 +417,12 @@ END IsGlobalVar ;
(*
IsLocalVar -
-*)
PROCEDURE IsLocalVar (procsym, varsym: CARDINAL) : BOOLEAN ;
BEGIN
RETURN IsVar (varsym) AND (GetVarScope (varsym) = procsym)
END IsLocalVar ;
+*)
(*
@@ -446,8 +447,7 @@ END RecordFieldContainsVarient ;
PROCEDURE RecordContainsVarient (sym: CARDINAL; visited: List) : BOOLEAN ;
VAR
i,
- fieldsym,
- fieldtype: CARDINAL ;
+ fieldsym: CARDINAL ;
BEGIN
Assert (IsRecord (sym)) ;
i := 1 ;
@@ -597,7 +597,7 @@ END IssueConditional ;
GenerateNoteFlow -
*)
-PROCEDURE GenerateNoteFlow (lst: List; n: CARDINAL; warning: BOOLEAN) ;
+PROCEDURE GenerateNoteFlow (n: CARDINAL; warning: BOOLEAN) ;
VAR
i : CARDINAL ;
ip1Ptr,
@@ -666,10 +666,10 @@ END IsUniqueWarning ;
CheckDeferredRecordAccess -
*)
-PROCEDURE CheckDeferredRecordAccess (procsym: CARDINAL; tok: CARDINAL;
+PROCEDURE CheckDeferredRecordAccess (tok: CARDINAL;
sym: CARDINAL;
canDereference, warning: BOOLEAN;
- lst: List; i: CARDINAL) ;
+ i: CARDINAL) ;
VAR
unique: BOOLEAN ;
BEGIN
@@ -701,7 +701,7 @@ BEGIN
Trace ("checkReadInit IsComponent (%d) is true)", sym) ;
IF (NOT GetVarComponentInitialized (sym, tok)) AND IsUniqueWarning (tok)
THEN
- GenerateNoteFlow (lst, i, warning) ;
+ GenerateNoteFlow (i, warning) ;
IssueWarning (tok,
'attempting to access ',
' before it has been initialized',
@@ -716,7 +716,7 @@ BEGIN
unique := IsUniqueWarning (tok) ;
IF unique
THEN
- GenerateNoteFlow (lst, i, warning) ;
+ GenerateNoteFlow (i, warning) ;
IssueWarning (tok,
'attempting to access the address of ',
' before it has been initialized',
@@ -727,7 +727,7 @@ BEGIN
THEN
IF unique
THEN
- GenerateNoteFlow (lst, i, warning) ;
+ GenerateNoteFlow (i, warning) ;
IssueWarning (tok,
'attempting to access ', ' before it has been initialized',
sym, warning)
@@ -737,7 +737,7 @@ BEGIN
Trace ("checkReadInit call VarCheckReadInit using GetMode (%d)", sym) ;
IF (NOT VarCheckReadInit (sym, GetMode (sym))) AND IsUniqueWarning (tok)
THEN
- GenerateNoteFlow (lst, i, warning) ;
+ GenerateNoteFlow (i, warning) ;
IssueWarning (tok,
'attempting to access ',
' before it has been initialized',
@@ -1065,14 +1065,13 @@ END IsExempt ;
CheckBinary -
*)
-PROCEDURE CheckBinary (procSym,
- op1tok, op1,
+PROCEDURE CheckBinary (op1tok, op1,
op2tok, op2,
op3tok, op3: CARDINAL; warning: BOOLEAN;
- lst: List; i: CARDINAL) ;
+ i: CARDINAL) ;
BEGIN
- CheckDeferredRecordAccess (procSym, op2tok, op2, FALSE, warning, lst, i) ;
- CheckDeferredRecordAccess (procSym, op3tok, op3, FALSE, warning, lst, i) ;
+ CheckDeferredRecordAccess (op2tok, op2, FALSE, warning, i) ;
+ CheckDeferredRecordAccess (op3tok, op3, FALSE, warning, i) ;
SetVarInitialized (op1, FALSE, op1tok)
END CheckBinary ;
@@ -1081,12 +1080,11 @@ END CheckBinary ;
CheckUnary -
*)
-PROCEDURE CheckUnary (procSym,
- lhstok, lhs,
+PROCEDURE CheckUnary (lhstok, lhs,
rhstok, rhs: CARDINAL; warning: BOOLEAN;
- lst: List; i: CARDINAL) ;
+ i: CARDINAL) ;
BEGIN
- CheckDeferredRecordAccess (procSym, rhstok, rhs, FALSE, warning, lst, i) ;
+ CheckDeferredRecordAccess (rhstok, rhs, FALSE, warning, i) ;
SetVarInitialized (lhs, FALSE, lhstok)
END CheckUnary ;
@@ -1095,15 +1093,15 @@ END CheckUnary ;
CheckXIndr -
*)
-PROCEDURE CheckXIndr (procSym, lhstok, lhs, type,
+PROCEDURE CheckXIndr (lhstok, lhs, type,
rhstok, rhs: CARDINAL; warning: BOOLEAN;
- bblst: List; i: CARDINAL) ;
+ i: CARDINAL) ;
VAR
lst : List ;
content: CARDINAL ;
BEGIN
- CheckDeferredRecordAccess (procSym, rhstok, rhs, FALSE, warning, bblst, i) ;
- CheckDeferredRecordAccess (procSym, lhstok, lhs, FALSE, warning, bblst, i) ;
+ CheckDeferredRecordAccess (rhstok, rhs, FALSE, warning, i) ;
+ CheckDeferredRecordAccess (lhstok, lhs, FALSE, warning, i) ;
(* Now see if we know what lhs is pointing to and set fields if necessary. *)
content := getContent (getLAlias (lhs), lhs, lhstok) ;
IF (content # NulSym) AND (content # lhs) AND (GetSType (content) = type)
@@ -1132,19 +1130,19 @@ END CheckXIndr ;
CheckIndrX -
*)
-PROCEDURE CheckIndrX (procSym, lhstok, lhs, type, rhstok, rhs: CARDINAL;
+PROCEDURE CheckIndrX (lhstok, lhs, rhstok, rhs: CARDINAL;
warning: BOOLEAN;
- lst: List; i: CARDINAL) ;
+ i: CARDINAL) ;
VAR
content: CARDINAL ;
BEGIN
- CheckDeferredRecordAccess (procSym, rhstok, rhs, FALSE, warning, lst, i) ;
+ CheckDeferredRecordAccess (rhstok, rhs, FALSE, warning, i) ;
content := getContent (getLAlias (rhs), rhs, rhstok) ;
IF content = NulSym
THEN
IncludeItemIntoList (ignoreList, lhs)
ELSE
- CheckDeferredRecordAccess (procSym, rhstok, content, TRUE, warning, lst, i) ;
+ CheckDeferredRecordAccess (rhstok, content, TRUE, warning, i) ;
SetVarInitialized (lhs, VarCheckReadInit (content, RightValue), lhstok) ;
IF IsReallyPointer (content)
THEN
@@ -1158,7 +1156,7 @@ END CheckIndrX ;
CheckRecordField -
*)
-PROCEDURE CheckRecordField (procSym, op1tok, op1, op2tok, op2: CARDINAL) ;
+PROCEDURE CheckRecordField (op1: CARDINAL) ;
BEGIN
PutVarInitialized (op1, LeftValue)
END CheckRecordField ;
@@ -1168,14 +1166,14 @@ END CheckRecordField ;
CheckBecomes -
*)
-PROCEDURE CheckBecomes (procSym, destok, des, exprtok, expr: CARDINAL;
- warning: BOOLEAN; bblst: List; i: CARDINAL) ;
+PROCEDURE CheckBecomes (destok, des, exprtok, expr: CARDINAL;
+ warning: BOOLEAN; i: CARDINAL) ;
VAR
lvalue: BOOLEAN ;
lst : List ;
vsym : CARDINAL ;
BEGIN
- CheckDeferredRecordAccess (procSym, exprtok, expr, FALSE, warning, bblst, i) ;
+ CheckDeferredRecordAccess (exprtok, expr, FALSE, warning, i) ;
SetupLAlias (des, expr) ;
SetVarInitialized (des, FALSE, destok) ;
(* Now see if we know what lhs is pointing to and set fields if necessary. *)
@@ -1200,11 +1198,11 @@ END CheckBecomes ;
CheckComparison -
*)
-PROCEDURE CheckComparison (procSym, op1tok, op1, op2tok, op2: CARDINAL;
- warning: BOOLEAN; lst: List; i: CARDINAL) ;
+PROCEDURE CheckComparison (op1tok, op1, op2tok, op2: CARDINAL;
+ warning: BOOLEAN; i: CARDINAL) ;
BEGIN
- CheckDeferredRecordAccess (procSym, op1tok, op1, FALSE, warning, lst, i) ;
- CheckDeferredRecordAccess (procSym, op2tok, op2, FALSE, warning, lst, i)
+ CheckDeferredRecordAccess (op1tok, op1, FALSE, warning, i) ;
+ CheckDeferredRecordAccess (op2tok, op2, FALSE, warning, i)
END CheckComparison ;
@@ -1212,7 +1210,7 @@ END CheckComparison ;
CheckAddr -
*)
-PROCEDURE CheckAddr (procSym, ptrtok, ptr, contenttok, content: CARDINAL) ;
+PROCEDURE CheckAddr (ptrtok, ptr, contenttok, content: CARDINAL) ;
BEGIN
SetVarInitialized (ptr, GetVarInitialized (content, contenttok), ptrtok) ;
SetupIndr (ptr, content)
@@ -1279,7 +1277,7 @@ BEGIN
IfLessOp,
IfLessEquOp,
IfGreOp,
- IfGreEquOp : CheckComparison (procSym, op1tok, op1, op2tok, op2, warning, lst, i) |
+ IfGreEquOp : CheckComparison (op1tok, op1, op2tok, op2, warning, i) |
TryOp,
ReturnOp,
CallOp,
@@ -1290,34 +1288,35 @@ BEGIN
(* Variable references. *)
InclOp,
- ExclOp : CheckDeferredRecordAccess (procSym, op1tok, op1, FALSE, warning, lst, i) ;
- CheckDeferredRecordAccess (procSym, op1tok, op1, TRUE, warning, lst, i) ;
- CheckDeferredRecordAccess (procSym, op3tok, op3, FALSE, warning, lst, i) |
- NegateOp : CheckUnary (procSym, op1tok, op1, op3tok, op3, warning, lst, i) |
- BecomesOp : CheckBecomes (procSym, op1tok, op1, op3tok, op3, warning, lst, i) |
+ ExclOp : CheckDeferredRecordAccess (op1tok, op1, FALSE, warning, i) ;
+ CheckDeferredRecordAccess (op1tok, op1, TRUE, warning, i) ;
+ CheckDeferredRecordAccess (op3tok, op3, FALSE, warning, i) |
+ NegateOp : CheckUnary (op1tok, op1, op3tok, op3, warning, i) |
+ BecomesOp : CheckBecomes (op1tok, op1, op3tok, op3, warning, i) |
UnboundedOp,
FunctValueOp,
StandardFunctionOp,
HighOp,
SizeOp : SetVarInitialized (op1, FALSE, op1tok) |
- AddrOp : CheckAddr (procSym, op1tok, op1, op3tok, op3) |
+ AddrOp : CheckAddr (op1tok, op1, op3tok, op3) |
ReturnValueOp : SetVarInitialized (op1, FALSE, op1tok) |
NewLocalVarOp : |
- ParamOp : CheckDeferredRecordAccess (procSym, op2tok, op2, FALSE, warning, lst, i) ;
- CheckDeferredRecordAccess (procSym, op3tok, op3, FALSE, warning, lst, i) ;
+ ParamOp : CheckDeferredRecordAccess (op2tok, op2, FALSE, warning, i) ;
+ CheckDeferredRecordAccess (op3tok, op3, FALSE, warning, i) ;
IF (op1 > 0) AND (op1 <= NoOfParam (op2)) AND
IsVarParam (op2, op1)
THEN
SetVarInitialized (op3, TRUE, op3tok)
END |
- ArrayOp : CheckDeferredRecordAccess (procSym, op3tok, op3, FALSE, warning, lst, i) ;
+ ArrayOp : CheckDeferredRecordAccess (op3tok, op3, FALSE, warning, i) ;
SetVarInitialized (op1, TRUE, op1tok) |
- RecordFieldOp : CheckRecordField (procSym, op1tok, op1, op2tok, op2) |
+ RecordFieldOp : CheckRecordField (op1) |
LogicalShiftOp,
LogicalRotateOp,
LogicalOrOp,
LogicalAndOp,
LogicalXorOp,
+ LogicalDiffOp,
CoerceOp,
ConvertOp,
CastOp,
@@ -1332,12 +1331,11 @@ BEGIN
ModCeilOp,
DivFloorOp,
ModTruncOp,
- DivTruncOp : CheckBinary (procSym,
- op1tok, op1, op2tok, op2, op3tok, op3, warning, lst, i) |
- XIndrOp : CheckXIndr (procSym, op1tok, op1, op2, op3tok, op3, warning, lst, i) |
- IndrXOp : CheckIndrX (procSym, op1tok, op1, op2, op3tok, op3, warning, lst, i) |
+ DivTruncOp : CheckBinary (op1tok, op1, op2tok, op2, op3tok, op3, warning, i) |
+ XIndrOp : CheckXIndr (op1tok, op1, op2, op3tok, op3, warning, i) |
+ IndrXOp : CheckIndrX (op1tok, op1, op3tok, op3, warning, i) |
SaveExceptionOp : SetVarInitialized (op1, FALSE, op1tok) |
- RestoreExceptionOp: CheckDeferredRecordAccess (procSym, op1tok, op1, FALSE, warning, lst, i) |
+ RestoreExceptionOp: CheckDeferredRecordAccess (op1tok, op1, FALSE, warning, i) |
SubrangeLowOp,
SubrangeHighOp : InternalError ('quadruples should have been resolved') |
@@ -1368,7 +1366,10 @@ BEGIN
RestorePriorityOp,
RangeCheckOp,
ModuleScopeOp,
- ErrorOp : |
+ ErrorOp,
+ DummyOp,
+ OptParamOp,
+ InitAddressOp : |
END ;
RETURN FALSE
@@ -1510,7 +1511,7 @@ END DumpBBArray ;
DumpBBSequence -
*)
-PROCEDURE DumpBBSequence (procSym: CARDINAL; lst: List) ;
+PROCEDURE DumpBBSequence (lst: List) ;
VAR
arrayindex,
listindex, n: CARDINAL ;
@@ -1521,7 +1522,7 @@ BEGIN
printf0 (" checking sequence:");
WHILE listindex <= n DO
arrayindex := GetItemFromList (lst, listindex) ;
- printf1 (" [%d]", listindex) ;
+ printf2 (" lst[%d] -> %d", listindex, arrayindex) ;
INC (listindex)
END ;
printf0 ("\n")
@@ -1616,7 +1617,7 @@ VAR
BEGIN
IF Debugging
THEN
- DumpBBSequence (procSym, lst)
+ DumpBBSequence (lst)
END ;
initBlock ;
ForeachLocalSymDo (procSym, SetVarUninitialized) ;
diff --git a/gcc/m2/gm2-compiler/P3Build.bnf b/gcc/m2/gm2-compiler/P3Build.bnf
index bcff7579..15c31fb 100644
--- a/gcc/m2/gm2-compiler/P3Build.bnf
+++ b/gcc/m2/gm2-compiler/P3Build.bnf
@@ -55,6 +55,7 @@ FROM M2Printf IMPORT printf0, printf1 ;
FROM M2Debug IMPORT Assert ;
FROM P2SymBuild IMPORT BuildString, BuildNumber ;
FROM M2MetaError IMPORT MetaErrorT0 ;
+FROM M2CaseList IMPORT ElseCase ;
FROM M2Reserved IMPORT tokToTok, toktype,
NulTok, ImportTok, ExportTok, QualifiedTok, UnQualifiedTok,
@@ -1207,6 +1208,7 @@ CaseEndStatement := "END" % Bui
% BuildCaseEnd %
| "ELSE" % BuildStmtNote (-1) %
% BuildCaseElse %
+ % ElseCase (NulSym) %
StatementSequence % BuildStmtNote (0) %
"END"
% BuildCaseEnd %
diff --git a/gcc/m2/gm2-compiler/PCSymBuild.mod b/gcc/m2/gm2-compiler/PCSymBuild.mod
index c6708d5..2b9e913 100644
--- a/gcc/m2/gm2-compiler/PCSymBuild.mod
+++ b/gcc/m2/gm2-compiler/PCSymBuild.mod
@@ -806,7 +806,7 @@ PROCEDURE InitDesExpr (des: CARDINAL) ;
VAR
e: exprNode ;
BEGIN
- NEW(e) ;
+ NEW (e) ;
WITH e^ DO
tag := designator ;
CASE tag OF
@@ -819,6 +819,8 @@ BEGIN
left := NIL
END
+ ELSE
+ InternalError ('expecting designator')
END
END ;
PushAddress (exprStack, e)
@@ -1168,6 +1170,8 @@ BEGIN
third := more
END
+ ELSE
+ InternalError ('expecting function')
END
END ;
PushAddress (exprStack, n)
@@ -1194,6 +1198,8 @@ BEGIN
expr := e
END
+ ELSE
+ InternalError ('expecting convert')
END
END ;
PushAddress(exprStack, n)
@@ -1208,7 +1214,7 @@ PROCEDURE InitLeaf (m: constType; s, t: CARDINAL) ;
VAR
l: exprNode ;
BEGIN
- NEW(l) ;
+ NEW (l) ;
WITH l^ DO
tag := leaf ;
CASE tag OF
@@ -1219,9 +1225,11 @@ BEGIN
sym := s
END
+ ELSE
+ InternalError ('expecting leaf')
END
END ;
- PushAddress(exprStack, l)
+ PushAddress (exprStack, l)
END InitLeaf ;
@@ -1513,9 +1521,9 @@ PROCEDURE InitBinary (m: constType; t: CARDINAL; o: Name) ;
VAR
l, r, b: exprNode ;
BEGIN
- r := PopAddress(exprStack) ;
- l := PopAddress(exprStack) ;
- NEW(b) ;
+ r := PopAddress (exprStack) ;
+ l := PopAddress (exprStack) ;
+ NEW (b) ;
WITH b^ DO
tag := binary ;
CASE tag OF
@@ -1527,9 +1535,11 @@ BEGIN
right := r ;
op := o
END
+ ELSE
+ InternalError ('expecting binary')
END
END ;
- PushAddress(exprStack, b)
+ PushAddress (exprStack, b)
END InitBinary ;
@@ -1541,10 +1551,10 @@ PROCEDURE BuildRelationConst ;
VAR
op: Name ;
BEGIN
- PopT(op) ;
+ PopT (op) ;
IF inDesignator
THEN
- InitBinary(boolean, Boolean, op)
+ InitBinary (boolean, Boolean, op)
END
END BuildRelationConst ;
@@ -1557,10 +1567,10 @@ PROCEDURE BuildBinaryConst ;
VAR
op: Name ;
BEGIN
- PopT(op) ;
+ PopT (op) ;
IF inDesignator
THEN
- InitBinary(unknown, NulSym, op)
+ InitBinary (unknown, NulSym, op)
END
END BuildBinaryConst ;
@@ -1586,6 +1596,8 @@ BEGIN
op := o
END
+ ELSE
+ InternalError ('expecting unary')
END
END ;
PushAddress(exprStack, b)
diff --git a/gcc/m2/gm2-compiler/SymbolTable.def b/gcc/m2/gm2-compiler/SymbolTable.def
index 9579a42..e7356da 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.def
+++ b/gcc/m2/gm2-compiler/SymbolTable.def
@@ -1223,8 +1223,9 @@ PROCEDURE FromModuleGetSym (tok: CARDINAL;
(*
- GetNth - returns the n th symbol in the list of father Sym.
- Sym may be a Module, DefImp, Procedure or Record symbol.
+ GetNth - returns the n th symbol in the list associated with the scope
+ of Sym. Sym may be a Module, DefImp, Procedure, Record or
+ Enumeration symbol.
*)
PROCEDURE GetNth (Sym: CARDINAL; n: CARDINAL) : CARDINAL ;
@@ -2426,7 +2427,9 @@ PROCEDURE ForeachParamSymDo (Sym: CARDINAL; P: PerformOperation) ;
(*
ForeachFieldEnumerationDo - for each field in enumeration, Sym,
- do procedure, P.
+ do procedure, P. Each call to P contains
+ an enumeration field, the order is alphabetical.
+ Use ForeachLocalSymDo for declaration order.
*)
PROCEDURE ForeachFieldEnumerationDo (Sym: CARDINAL; P: PerformOperation) ;
diff --git a/gcc/m2/gm2-compiler/SymbolTable.mod b/gcc/m2/gm2-compiler/SymbolTable.mod
index aabaef4..86f896e 100644
--- a/gcc/m2/gm2-compiler/SymbolTable.mod
+++ b/gcc/m2/gm2-compiler/SymbolTable.mod
@@ -292,7 +292,8 @@ TYPE
(* of enumeration. *)
NoOfElements: CARDINAL ; (* No elements in enumeration *)
LocalSymbols: SymbolTree ; (* Contains all enumeration *)
- (* fields. *)
+ (* fields (alphabetical). *)
+ ListOfFields: List ; (* Ordered as declared. *)
Size : PtrToValue ; (* Size at runtime of symbol. *)
packedInfo : PackedInfo ; (* the equivalent packed type *)
oafamily : CARDINAL ; (* The oafamily for this sym *)
@@ -4644,6 +4645,7 @@ BEGIN
(* enumeration type. *)
Size := InitValue () ; (* Size at runtime of sym *)
InitTree (LocalSymbols) ; (* Enumeration fields. *)
+ InitList (ListOfFields) ; (* Ordered as declared. *)
InitPacked (packedInfo) ; (* not packed and no *)
(* equivalent (yet). *)
oafamily := oaf ; (* The open array family *)
@@ -6636,8 +6638,9 @@ END GetNthFromComponent ;
(*
- GetNth - returns the n th symbol in the list of father Sym.
- Sym may be a Module, DefImp, Procedure or Record symbol.
+ GetNth - returns the n th symbol in the list associated with the scope
+ of Sym. Sym may be a Module, DefImp, Procedure, Record or
+ Enumeration symbol.
*)
PROCEDURE GetNth (Sym: CARDINAL; n: CARDINAL) : CARDINAL ;
@@ -6649,14 +6652,15 @@ BEGIN
WITH pSym^ DO
CASE SymbolType OF
- RecordSym : i := GetItemFromList(Record.ListOfSons, n) |
- VarientSym : i := GetItemFromList(Varient.ListOfSons, n) |
- VarientFieldSym : i := GetItemFromList(VarientField.ListOfSons, n) |
- ProcedureSym : i := GetItemFromList(Procedure.ListOfVars, n) |
- DefImpSym : i := GetItemFromList(DefImp.ListOfVars, n) |
- ModuleSym : i := GetItemFromList(Module.ListOfVars, n) |
- TupleSym : i := GetFromIndex(Tuple.list, n) |
- VarSym : i := GetNthFromComponent(Sym, n)
+ RecordSym : i := GetItemFromList (Record.ListOfSons, n) |
+ VarientSym : i := GetItemFromList (Varient.ListOfSons, n) |
+ VarientFieldSym : i := GetItemFromList (VarientField.ListOfSons, n) |
+ ProcedureSym : i := GetItemFromList (Procedure.ListOfVars, n) |
+ DefImpSym : i := GetItemFromList (DefImp.ListOfVars, n) |
+ ModuleSym : i := GetItemFromList (Module.ListOfVars, n) |
+ TupleSym : i := GetFromIndex (Tuple.list, n) |
+ VarSym : i := GetNthFromComponent (Sym, n) |
+ EnumerationSym : i := GetItemFromList (Enumeration.ListOfFields, n)
ELSE
InternalError ('cannot GetNth from this symbol')
@@ -7528,7 +7532,8 @@ BEGIN
FieldName,
GetDeclaredMod(GetSymKey(LocalSymbols, FieldName)))
ELSE
- PutSymKey(LocalSymbols, FieldName, Field)
+ PutSymKey(LocalSymbols, FieldName, Field) ;
+ IncludeItemIntoList (ListOfFields, Field)
END
END
@@ -12333,6 +12338,7 @@ VAR
pSym: PtrToSymbol ;
s : CARDINAL ;
BEGIN
+ s := NulSym ;
IF IsModule (sym) OR IsDefImp (sym)
THEN
RETURN( CollectSymbolFrom (tok, sym, n) )
@@ -12355,10 +12361,9 @@ BEGIN
END
END ;
s := CollectUnknown (tok, GetScope (sym), n)
- END ;
- RETURN( s )
+ END
END ;
- InternalError ('expecting sym should be a module, defimp or procedure symbol')
+ RETURN( s )
END CollectUnknown ;
@@ -13662,7 +13667,9 @@ END ForeachModuleDo ;
(*
ForeachFieldEnumerationDo - for each field in enumeration, Sym,
- do procedure, P.
+ do procedure, P. Each call to P contains
+ an enumeration field, the order is alphabetical.
+ Use ForeachLocalSymDo for declaration order.
*)
PROCEDURE ForeachFieldEnumerationDo (Sym: CARDINAL; P: PerformOperation) ;
@@ -13673,7 +13680,7 @@ BEGIN
WITH pSym^ DO
CASE SymbolType OF
- EnumerationSym: ForeachNodeDo( Enumeration.LocalSymbols, P)
+ EnumerationSym: ForeachNodeDo (Enumeration.LocalSymbols, P)
ELSE
InternalError ('expecting Enumeration symbol')
diff --git a/gcc/m2/gm2-gcc/m2expr.cc b/gcc/m2/gm2-gcc/m2expr.cc
index 8021eb0..32222d2 100644
--- a/gcc/m2/gm2-gcc/m2expr.cc
+++ b/gcc/m2/gm2-gcc/m2expr.cc
@@ -57,6 +57,26 @@ static tree m2expr_Build4TruthAndIf (location_t location, tree a, tree b,
static int label_count = 0;
static GTY (()) tree set_full_complement;
+/* Return an integer string using base 10 and no padding. The string returned
+ will have been malloc'd. */
+
+char *
+m2expr_CSTIntToString (tree t)
+{
+ char val[100];
+
+ snprintf (val, 100, HOST_WIDE_INT_PRINT_UNSIGNED, TREE_INT_CST_LOW (t));
+ return xstrndup (val, 100);
+}
+
+/* Return the char representation of tree t. */
+
+char
+m2expr_CSTIntToChar (tree t)
+{
+ return (char) (TREE_INT_CST_LOW (t));
+}
+
/* CompareTrees returns -1 if e1 < e2, 0 if e1 == e2, and 1 if e1 > e2. */
int
diff --git a/gcc/m2/gm2-gcc/m2expr.def b/gcc/m2/gm2-gcc/m2expr.def
index 83e2813..e8027a6 100644
--- a/gcc/m2/gm2-gcc/m2expr.def
+++ b/gcc/m2/gm2-gcc/m2expr.def
@@ -38,12 +38,25 @@ TYPE
(*
- init - initialise this module.
+ init - initialize this module.
*)
PROCEDURE init (location: location_t) ;
+(*
+ CSTIntToString - return an integer string using base 10 and no padding.
+ The string returned will have been malloc'd.
+*)
+
+PROCEDURE CSTIntToString (t: Tree) : ADDRESS ;
+
+(*
+ CSTIntToChar - return the CHAR representation of tree t.
+*)
+
+PROCEDURE CSTIntToChar (t: Tree) : CHAR ;
+
PROCEDURE CheckConstStrZtypeRange (location: location_t;
str: ADDRESS; base: CARDINAL) : BOOLEAN ;
diff --git a/gcc/m2/gm2-gcc/m2expr.h b/gcc/m2/gm2-gcc/m2expr.h
index 40fc846..d15f00b 100644
--- a/gcc/m2/gm2-gcc/m2expr.h
+++ b/gcc/m2/gm2-gcc/m2expr.h
@@ -35,6 +35,9 @@ along with GNU Modula-2; see the file COPYING3. If not see
#endif /* !__GNUG__. */
#endif /* !m2expr_c. */
+
+EXTERN char m2expr_CSTIntToChar (tree t);
+EXTERN char *m2expr_CSTIntToString (tree t);
EXTERN bool m2expr_StrToWideInt (location_t location, const char *str, unsigned int base,
widest_int &wval, bool issueError);
EXTERN void m2expr_BuildBinaryForeachWordDo (
diff --git a/gcc/m2/gm2-gcc/m2options.h b/gcc/m2/gm2-gcc/m2options.h
index dd79509..8bd820f 100644
--- a/gcc/m2/gm2-gcc/m2options.h
+++ b/gcc/m2/gm2-gcc/m2options.h
@@ -137,7 +137,7 @@ EXTERN char *M2Options_GetM2Prefix (void);
EXTERN void M2Options_SetM2PathName (const char *arg);
EXTERN char *M2Options_GetM2PathName (void);
EXTERN int M2Options_SetUninitVariableChecking (bool value, const char *arg);
-
+EXTERN void M2Options_SetCaseEnumChecking (bool value);
#undef EXTERN
#endif /* m2options_h. */
diff --git a/gcc/m2/gm2-lang.cc b/gcc/m2/gm2-lang.cc
index c21d29b..2b702cd 100644
--- a/gcc/m2/gm2-lang.cc
+++ b/gcc/m2/gm2-lang.cc
@@ -479,6 +479,9 @@ gm2_langhook_handle_option (
case OPT_Wall:
M2Options_SetWall (value);
return 1;
+ case OPT_Wcase_enum:
+ M2Options_SetCaseEnumChecking (value);
+ return 1;
#if 0
/* Not yet implemented. */
case OPT_fxcode:
diff --git a/gcc/m2/gm2-libs-iso/TextIO.mod b/gcc/m2/gm2-libs-iso/TextIO.mod
index a6ca17e..eab156d 100644
--- a/gcc/m2/gm2-libs-iso/TextIO.mod
+++ b/gcc/m2/gm2-libs-iso/TextIO.mod
@@ -68,7 +68,7 @@ END DumpState ;
*)
PROCEDURE SetNul (cid: IOChan.ChanId; i: CARDINAL;
- VAR s: ARRAY OF CHAR; range: BOOLEAN) ;
+ VAR s: ARRAY OF CHAR; range: BOOLEAN) ;
BEGIN
IF DebugState
THEN
diff --git a/gcc/m2/lang.opt b/gcc/m2/lang.opt
index 730a1a2..f906d4e 100644
--- a/gcc/m2/lang.opt
+++ b/gcc/m2/lang.opt
@@ -277,6 +277,10 @@ Wall
Modula-2
; Documented in c.opt
+Wcase-enum
+Modula-2
+turns on case statement label compile time checking when using an expression of an enum type.
+
Wpedantic
Modula-2
; Documented in common.opt
diff --git a/gcc/match.pd b/gcc/match.pd
index 209b059..a05d4f0 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -931,8 +931,8 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
bool overflowed = true;
value_range vr0, vr1;
if (INTEGRAL_TYPE_P (type)
- && get_global_range_query ()->range_of_expr (vr0, @0)
- && get_global_range_query ()->range_of_expr (vr1, @1)
+ && get_range_query (cfun)->range_of_expr (vr0, @0)
+ && get_range_query (cfun)->range_of_expr (vr1, @1)
&& !vr0.varying_p () && !vr0.undefined_p ()
&& !vr1.varying_p () && !vr1.undefined_p ())
{
@@ -975,6 +975,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* "X+(N*M)" doesn't overflow. */
&& range_op_handler (PLUS_EXPR).overflow_free_p (vr0, vr3)
&& get_range_query (cfun)->range_of_expr (vr4, @4)
+ && !vr4.undefined_p ()
/* "X+N*M" is not with opposite sign as "X". */
&& (TYPE_UNSIGNED (type)
|| (vr0.nonnegative_p () && vr4.nonnegative_p ())
@@ -995,6 +996,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* "X - (N*M)" doesn't overflow. */
&& range_op_handler (MINUS_EXPR).overflow_free_p (vr0, vr3)
&& get_range_query (cfun)->range_of_expr (vr4, @4)
+ && !vr4.undefined_p ()
/* "X-N*M" is not with opposite sign as "X". */
&& (TYPE_UNSIGNED (type)
|| (vr0.nonnegative_p () && vr4.nonnegative_p ())
@@ -1025,6 +1027,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* "X+C" doesn't overflow. */
&& range_op_handler (PLUS_EXPR).overflow_free_p (vr0, vr1)
&& get_range_query (cfun)->range_of_expr (vr3, @3)
+ && !vr3.undefined_p ()
/* "X+C" and "X" are not of opposite sign. */
&& (TYPE_UNSIGNED (type)
|| (vr0.nonnegative_p () && vr3.nonnegative_p ())
@@ -1483,14 +1486,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* X % Y is smaller than Y. */
(for cmp (lt ge)
(simplify
- (cmp (trunc_mod @0 @1) @1)
+ (cmp:c (trunc_mod @0 @1) @1)
(if (TYPE_UNSIGNED (TREE_TYPE (@0)))
{ constant_boolean_node (cmp == LT_EXPR, type); })))
-(for cmp (gt le)
- (simplify
- (cmp @1 (trunc_mod @0 @1))
- (if (TYPE_UNSIGNED (TREE_TYPE (@0)))
- { constant_boolean_node (cmp == GT_EXPR, type); })))
/* x | ~0 -> ~0 */
(simplify
@@ -2183,6 +2181,16 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
&& (TYPE_UNSIGNED (type)
|| TYPE_PRECISION (type) > 1))))
+/* (a&1) is always [0,1] too. This is useful again when
+ the range is not known. */
+(match zero_one_valued_p
+ (bit_and:c@0 @1 zero_one_valued_p))
+
+/* A conversion from an zero_one_valued_p is still a [0,1].
+ This is useful when the range of a variable is not known */
+(match zero_one_valued_p
+ (convert@0 zero_one_valued_p))
+
/* Transform { 0 or 1 } * { 0 or 1 } into { 0 or 1 } & { 0 or 1 }. */
(simplify
(mult zero_one_valued_p@0 zero_one_valued_p@1)
@@ -2972,10 +2980,20 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
&& operand_equal_p (@1, @2)))
(with
{
+ bool one_before = false;
+ bool one_after = false;
int cmp = 0;
if (TREE_CODE (@1) == INTEGER_CST
&& TREE_CODE (@2) == INTEGER_CST)
- cmp = tree_int_cst_compare (@1, @2);
+ {
+ cmp = tree_int_cst_compare (@1, @2);
+ if (cmp < 0
+ && wi::to_wide (@1) == wi::to_wide (@2) - 1)
+ one_before = true;
+ if (cmp > 0
+ && wi::to_wide (@1) == wi::to_wide (@2) + 1)
+ one_after = true;
+ }
bool val;
switch (code2)
{
@@ -3000,6 +3018,16 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
&& code2 == LE_EXPR
&& cmp == 0)
(lt @0 @1))
+ /* (a != (b+1)) & (a > b) -> a > (b+1) */
+ (if (code1 == NE_EXPR
+ && code2 == GT_EXPR
+ && one_after)
+ (gt @0 @1))
+ /* (a != (b-1)) & (a < b) -> a < (b-1) */
+ (if (code1 == NE_EXPR
+ && code2 == LT_EXPR
+ && one_before)
+ (lt @0 @1))
)
)
)
@@ -3071,10 +3099,20 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
&& operand_equal_p (@1, @2)))
(with
{
+ bool one_before = false;
+ bool one_after = false;
int cmp = 0;
if (TREE_CODE (@1) == INTEGER_CST
&& TREE_CODE (@2) == INTEGER_CST)
- cmp = tree_int_cst_compare (@1, @2);
+ {
+ cmp = tree_int_cst_compare (@1, @2);
+ if (cmp < 0
+ && wi::to_wide (@1) == wi::to_wide (@2) - 1)
+ one_before = true;
+ if (cmp > 0
+ && wi::to_wide (@1) == wi::to_wide (@2) + 1)
+ one_after = true;
+ }
bool val;
switch (code2)
{
@@ -3099,6 +3137,16 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
&& code2 == LT_EXPR
&& cmp == 0)
(le @0 @1))
+ /* (a == (b-1)) | (a >= b) -> a >= (b-1) */
+ (if (code1 == EQ_EXPR
+ && code2 == GE_EXPR
+ && one_before)
+ (ge @0 @1))
+ /* (a == (b+1)) | (a <= b) -> a <= (b-1) */
+ (if (code1 == EQ_EXPR
+ && code2 == LE_EXPR
+ && one_after)
+ (le @0 @1))
)
)
)
@@ -3154,6 +3202,26 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
{ constant_boolean_node (true, type); })
))))))
+/* Optimize (a CMP b) ^ (a CMP b) */
+/* Optimize (a CMP b) != (a CMP b) */
+(for op (bit_xor ne)
+ (for cmp1 (lt lt lt le le le)
+ cmp2 (gt eq ne ge eq ne)
+ rcmp (ne le gt ne lt ge)
+ (simplify
+ (op:c (cmp1:c @0 @1) (cmp2:c @0 @1))
+ (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) || POINTER_TYPE_P (TREE_TYPE (@0)))
+ (rcmp @0 @1)))))
+
+/* Optimize (a CMP b) == (a CMP b) */
+(for cmp1 (lt lt lt le le le)
+ cmp2 (gt eq ne ge eq ne)
+ rcmp (eq gt le eq ge lt)
+ (simplify
+ (eq:c (cmp1:c @0 @1) (cmp2:c @0 @1))
+ (if (INTEGRAL_TYPE_P (TREE_TYPE (@0)) || POINTER_TYPE_P (TREE_TYPE (@0)))
+ (rcmp @0 @1))))
+
/* We can't reassociate at all for saturating types. */
(if (!TYPE_SATURATING (type))
@@ -3900,9 +3968,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(maxmin @0 (bit_not @1))))
/* MIN (X, Y) == X -> X <= Y */
-(for minmax (min min max max)
- cmp (eq ne eq ne )
- out (le gt ge lt )
+/* MIN (X, Y) < X -> X > Y */
+/* MIN (X, Y) >= X -> X <= Y */
+(for minmax (min min min min max max max max)
+ cmp (eq ne lt ge eq ne gt le )
+ out (le gt gt le ge lt lt ge )
(simplify
(cmp:c (minmax:c @0 @1) @0)
(if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)))
@@ -3927,13 +3997,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(if (wi::lt_p (wi::to_wide (@1), wi::to_wide (@2),
TYPE_SIGN (TREE_TYPE (@0))))
(cmp @0 @2)))))
-/* MIN (X, C1) < C2 -> X < C2 || C1 < C2 */
-(for minmax (min min max max min min max max )
- cmp (lt le gt ge gt ge lt le )
- comb (bit_ior bit_ior bit_ior bit_ior bit_and bit_and bit_and bit_and)
- (simplify
- (cmp (minmax @0 INTEGER_CST@1) INTEGER_CST@2)
- (comb (cmp @0 @2) (cmp @1 @2))))
/* X <= MAX(X, Y) -> true
X > MAX(X, Y) -> false
@@ -3945,6 +4008,14 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(cmp:c @0 (minmax:c @0 @1))
{ constant_boolean_node (cmp == GE_EXPR || cmp == LE_EXPR, type); } ))
+/* MIN (X, C1) < C2 -> X < C2 || C1 < C2 */
+(for minmax (min min max max min min max max )
+ cmp (lt le gt ge gt ge lt le )
+ comb (bit_ior bit_ior bit_ior bit_ior bit_and bit_and bit_and bit_and)
+ (simplify
+ (cmp (minmax @0 INTEGER_CST@1) INTEGER_CST@2)
+ (comb (cmp @0 @2) (cmp @1 @2))))
+
/* Undo fancy ways of writing max/min or other ?: expressions, like
a - ((a - b) & -(a < b)) and a - (a - b) * (a < b) into (a < b) ? b : a.
People normally use ?: and that is what we actually try to optimize. */
@@ -4145,8 +4216,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
/* `(1 >> X) != 0` -> `X == 0` */
/* `(1 >> X) == 0` -> `X != 0` */
(simplify
- (cmp (rshift integer_onep @0) integer_zerop)
- (icmp @0 { build_zero_cst (TREE_TYPE (@0)); })))
+ (cmp (rshift integer_onep@1 @0) integer_zerop)
+ (if (INTEGRAL_TYPE_P (TREE_TYPE (@1)))
+ (icmp @0 { build_zero_cst (TREE_TYPE (@0)); }))))
/* (CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
(CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)
@@ -5084,6 +5156,14 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
)
)
+/* `(a == CST) & a` can be simplified to `0` or `(a == CST)` depending
+ on the first bit of the CST. */
+(simplify
+ (bit_and:c (convert@2 (eq @0 INTEGER_CST@1)) (convert? @0))
+ (if ((wi::to_wide (@1) & 1) != 0)
+ @2
+ { build_zero_cst (type); }))
+
/* Optimize
# x_5 in range [cst1, cst2] where cst2 = cst1 + 1
x_5 ? cstN ? cst4 : cst3
@@ -5417,7 +5497,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(for minmax (min max)
(for cmp (lt le gt ge ne)
(simplify
- (cond (cmp @1 @3) (minmax:c @1 @4) (minmax:c @2 @4))
+ (cond (cmp:c @1 @3) (minmax:c @1 @4) (minmax:c @2 @4))
(with
{
tree_code code = minmax_from_comparison (cmp, @1, @2, @1, @3);
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0e9491b..102ad9b 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -3347,6 +3347,8 @@ extern rtx_note *emit_note_after (enum insn_note, rtx_insn *);
extern rtx_insn *emit_insn (rtx);
extern rtx_insn *emit_debug_insn (rtx);
extern rtx_insn *emit_jump_insn (rtx);
+extern rtx_insn *emit_likely_jump_insn (rtx);
+extern rtx_insn *emit_unlikely_jump_insn (rtx);
extern rtx_insn *emit_call_insn (rtx);
extern rtx_code_label *emit_label (rtx);
extern rtx_jump_table_data *emit_jump_table_data (rtx);
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index 31a6ede..bbcbc29 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,16 @@
+2023-09-11 Parthib <94271200+Parthib314@users.noreply.github.com>
+
+ * Make-lang.in: Removed rust-gcc-diagnostics object file.
+ * rust-diagnostics.cc (rust_be_get_quotechars): Added from original file.
+ (rust_be_internal_error_at): Likewise.
+ (rust_be_error_at): Likewise.
+ (class rust_error_code_rule): Likewise.
+ (rust_be_warning_at): Likewise.
+ (rust_be_fatal_error): Likewise.
+ (rust_be_inform): Likewise.
+ (rust_be_debug_p): Likewise.
+ * rust-gcc-diagnostics.cc: Removed.
+
2023-09-07 David Malcolm <dmalcolm@redhat.com>
* rust-diagnostics.cc (rust_error_at): New overload.
diff --git a/gcc/shrink-wrap.cc b/gcc/shrink-wrap.cc
index b8d7b55..28301f04 100644
--- a/gcc/shrink-wrap.cc
+++ b/gcc/shrink-wrap.cc
@@ -1776,16 +1776,13 @@ insert_prologue_epilogue_for_components (sbitmap components)
commit_edge_insertions ();
}
-/* The main entry point to this subpass. FIRST_BB is where the prologue
- would be normally put. */
-void
-try_shrink_wrapping_separate (basic_block first_bb)
+bool
+use_shrink_wrapping_separate (void)
{
- if (!(SHRINK_WRAPPING_ENABLED
- && flag_shrink_wrap_separate
+ if (!(SHRINK_WRAPPING_ENABLED && flag_shrink_wrap_separate
&& optimize_function_for_speed_p (cfun)
&& targetm.shrink_wrap.get_separate_components))
- return;
+ return false;
/* We don't handle "strange" functions. */
if (cfun->calls_alloca
@@ -1794,6 +1791,17 @@ try_shrink_wrapping_separate (basic_block first_bb)
|| crtl->calls_eh_return
|| crtl->has_nonlocal_goto
|| crtl->saves_all_registers)
+ return false;
+
+ return true;
+}
+
+/* The main entry point to this subpass. FIRST_BB is where the prologue
+ would be normally put. */
+void
+try_shrink_wrapping_separate (basic_block first_bb)
+{
+ if (!use_shrink_wrapping_separate ())
return;
/* Ask the target what components there are. If it returns NULL, don't
diff --git a/gcc/shrink-wrap.h b/gcc/shrink-wrap.h
index 1616477..82386c2 100644
--- a/gcc/shrink-wrap.h
+++ b/gcc/shrink-wrap.h
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
extern bool requires_stack_frame_p (rtx_insn *, HARD_REG_SET, HARD_REG_SET);
extern void try_shrink_wrapping (edge *entry_edge, rtx_insn *prologue_seq);
extern void try_shrink_wrapping_separate (basic_block first_bb);
+extern bool use_shrink_wrapping_separate (void);
#define SHRINK_WRAPPING_ENABLED \
(flag_shrink_wrap && targetm.have_simple_return ())
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 96520fb..9bf6b29 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,1060 @@
+2023-09-17 Andrew Pinski <apinski@marvell.com>
+
+ * gcc.dg/tree-ssa/20040204-1.c: Remove xfail.
+
+2023-09-17 Ajit Kumar Agarwal <aagarwa1@linux.ibm.com>
+
+ * g++.target/powerpc/altivec-19.C: New testcase.
+
+2023-09-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111391
+ * gcc.target/riscv/rvv/autovec/partial/slp-9.c: Adapt test.
+ * gcc.target/riscv/rvv/autovec/pr111391-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/pr111391-2.c: New test.
+
+2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
+
+ * gcc.target/riscv/zknh-sha256.c: Moved to...
+ * gcc.target/riscv/zknh-sha256-64.c: ...here. Test RV64.
+ * gcc.target/riscv/zknh-sha256-32.c: New test for RV32.
+ * gcc.target/riscv/zksh64.c: Change the type.
+ * gcc.target/riscv/zksed64.c: Ditto.
+
+2023-09-16 Tsukasa OI <research_trasio@irq.a4lg.com>
+
+ * gcc.target/riscv/zbc32.c: Make signed type to unsigned.
+ * gcc.target/riscv/zbc64.c: Ditto.
+ * gcc.target/riscv/zbkb32.c: Ditto.
+ * gcc.target/riscv/zbkb64.c: Ditto.
+ * gcc.target/riscv/zbkc32.c: Ditto.
+ * gcc.target/riscv/zbkc64.c: Ditto.
+ * gcc.target/riscv/zbkx32.c: Ditto.
+ * gcc.target/riscv/zbkx64.c: Ditto.
+ * gcc.target/riscv/zknd32.c: Ditto.
+ * gcc.target/riscv/zknd64.c: Ditto.
+ * gcc.target/riscv/zkne32.c: Ditto.
+ * gcc.target/riscv/zkne64.c: Ditto.
+ * gcc.target/riscv/zknh-sha256.c: Ditto.
+ * gcc.target/riscv/zknh-sha512-32.c: Ditto.
+ * gcc.target/riscv/zknh-sha512-64.c: Ditto.
+ * gcc.target/riscv/zksed32.c: Ditto.
+ * gcc.target/riscv/zksed64.c: Ditto.
+ * gcc.target/riscv/zksh32.c: Ditto.
+ * gcc.target/riscv/zksh64.c: Ditto.
+
+2023-09-16 Pan Li <pan2.li@intel.com>
+
+ * gcc.target/riscv/rvv/autovec/vls/def.h: New macro.
+ * gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c: New test.
+
+2023-09-15 David Malcolm <dmalcolm@redhat.com>
+
+ * c-c++-common/analyzer/volatile-1.c: New test.
+
+2023-09-15 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/30802
+ * gfortran.dg/bounds_check_fail_6.f90: New test.
+
+2023-09-15 Andrew Pinski <apinski@marvell.com>
+
+ * gcc.dg/tree-ssa/bool-13.c: Update testcase as we now do
+ the MIN/MAX during forwprop1.
+
+2023-09-15 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111414
+ * gcc.c-torture/compile/pr111414-1.c: New test.
+
+2023-09-15 Qing Zhao <qing.zhao@oracle.com>
+
+ PR tree-optimization/111407
+ * gcc.dg/pr111407.c: New test.
+
+2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
+
+ * gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c: New test.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/slp-35.c: Block SLP check for vect_strided5 targets.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/slp-34.c: Block check for vect_strided5.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/slp-34-big-array.c: Block SLP check for vect_strided5.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/slp-16.c: Block vect_strided6.
+ * lib/target-supports.exp: Add strided type.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/slp-1.c: Add vect_stried5.
+
+2023-09-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/Wstringop-overflow-47.c: Add riscv.
+
+2023-09-15 Richard Sandiford <richard.sandiford@arm.com>
+
+ PR target/111411
+ * gcc.dg/rtl/aarch64/pr111411.c: New test.
+
+2023-09-15 Lehua Ding <lehua.ding@rivai.ai>
+
+ PR target/111381
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c: New test.
+
+2023-09-14 David Malcolm <dmalcolm@redhat.com>
+
+ * gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c:
+ New test.
+ * gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c: New
+ test.
+ * gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c:
+ New test.
+ * gcc.dg/plugin/diagnostic_plugin_test_paths.c: Add support for
+ generating multithreaded paths.
+ * gcc.dg/plugin/plugin.exp: Add the new tests.
+
+2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2/switches/case/fail/subrangecase.mod: Replace 19
+ with 17.
+ * gm2/switches/case/fail/subrangecase2.mod: Ditto.
+ * gm2/switches/case/fail/subrangecase3.mod: Ditto.
+ * gm2/switches/case/fail/subrangecase4.mod: Ditto.
+ * gm2/switches/case/pass/subrangecase.mod: Ditto.
+ * gm2/switches/case/pass/subrangecase2.mod: Ditto.
+ * gm2/switches/case/pass/subrangecase3.mod: Ditto.
+ * gm2/switches/case/pass/subrangecase4.mod: Ditto.
+ * gm2/switches/case/fail/calendar.mod: New test.
+
+2023-09-14 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2/switches/case/fail/subrangecase.mod: New test.
+ * gm2/switches/case/fail/subrangecase2.mod: New test.
+ * gm2/switches/case/fail/subrangecase3.mod: New test.
+ * gm2/switches/case/fail/subrangecase4.mod: New test.
+ * gm2/switches/case/fail/subrangecase5.mod: New test.
+ * gm2/switches/case/fail/subrangecase6.mod: New test.
+ * gm2/switches/case/pass/subrangecase.mod: New test.
+ * gm2/switches/case/pass/subrangecase2.mod: New test.
+ * gm2/switches/case/pass/subrangecase3.mod: New test.
+ * gm2/switches/case/pass/subrangecase4.mod: New test.
+
+2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/cost_model_15.c: New test.
+
+2023-09-14 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/106164
+ * gcc.dg/pr21643.c: Update test now that match does
+ the combing of the comparisons.
+ * gcc.dg/tree-ssa/cmpbit-5.c: New test.
+ * gcc.dg/tree-ssa/phi-opt-35.c: New test.
+
+2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/vls/def.h: Add VLS tests.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/cmp-6.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/mask-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/mask-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/mask-3.c: New test.
+
+2023-09-14 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111294
+ * gcc.dg/tree-ssa/evrp10.c: Adjust.
+ * gcc.dg/tree-ssa/evrp6.c: Likewise.
+ * gcc.dg/tree-ssa/forwprop-31.c: Likewise.
+ * gcc.dg/tree-ssa/neg-cast-3.c: Likewise.
+
+2023-09-14 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/acle/general/ld1rq_1.c: New test.
+
+2023-09-14 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111395
+ * gcc.target/riscv/rvv/fortran/pr111395.f90: New test.
+ * gcc.target/riscv/rvv/rvv-fortran.exp: New test.
+
+2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
+
+ * gcc.target/loongarch/cmov_ii.c: New test.
+
+2023-09-14 Lulu Cheng <chenglulu@loongson.cn>
+
+ PR target/111334
+ * gcc.target/loongarch/pr111334.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvssran.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrani.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrln.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvpackev.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpackod.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickev.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickod.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickve.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplve.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvextrins.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvilvh.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvilvl.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvprem.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpremi.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvneg.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvld.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmsub.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvrotr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvrotri.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvst.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvseq.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvseqi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsle-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslt-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffinth.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftintl.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvstelm.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-builtin.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitset.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvclo.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvclz.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsra.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrai.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsran.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrani.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrar.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrari.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvsll.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslli.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrl.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrli.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrln.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvand.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvandi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvandn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvnor.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvnori.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvor.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvori.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvorn.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvxor.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvxori.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvldi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * 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.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsub.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmadd.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvadd.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvadda.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddi.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c: New test.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vld.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vst.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vand.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vandi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vandn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vnor.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vnori.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vor.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vori.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vorn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vxor.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vxori.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vbsll.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbsrl.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vextrins.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vilvh.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vilvl.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpackev.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpackod.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickev.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickod.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpremi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplve.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplvei.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vshuf.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vfrstp.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vseq.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vseqi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsle-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsle-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslei-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslei-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslt-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslt-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslti-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslti-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vbitclr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitclri.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitrev.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitsel.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitseli.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitset.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitseti.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vclo.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vclz.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vpcnt.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vssran.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrani.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrarn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrarni.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrln.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlni.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vrotr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vrotri.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsra.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrai.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsran.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrani.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrar.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrari.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrarn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrarni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vsll.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vslli.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrl.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrli.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrln.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlni.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlr.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlri.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmod-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmod-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmskgez.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmskltz.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmsknz.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsigncov.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vexth-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vexth-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vextl-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vextl-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vldi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vneg.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsat-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsat-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vmax-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmax-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmin-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmin-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmini-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmini-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vavg-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vavg-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmul.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmsub.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssub-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vssub-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsub.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vadd.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vadda.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddi.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmadd.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-1.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-2.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-3.c: New test.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-4.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lsx/lsx-builtin.c: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/loongarch-vector.exp: New test.
+ * gcc.target/loongarch/vector/simd_correctness_check.h: New test.
+
+2023-09-14 Xiaolong Chen <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/strict-align.c: New test.
+
+2023-09-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/vls/def.h: Add more def.
+ * gcc.target/riscv/rvv/autovec/vls/extract-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/extract-2.c: New test.
+
+2023-09-13 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111364
+ * gcc.c-torture/execute/minmaxcmp-1.c: New test.
+ * gcc.dg/tree-ssa/minmaxcmp-2.c: New test.
+ * gcc.dg/pr96708-negative.c: Update testcase.
+ * gcc.dg/pr96708-positive.c: Add comment about `return 0`.
+
+2023-09-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111387
+ * gcc.dg/torture/pr111387.c: New testcase.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c: New test.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c: New test.
+
+2023-09-13 Lehua Ding <lehua.ding@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c: New test.
+
+2023-09-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/111397
+ * gcc.dg/uninit-pr111397.c: New testcase.
+
+2023-09-13 Pan Li <pan2.li@intel.com>
+
+ PR target/111362
+ * gcc.target/riscv/rvv/base/no-honor-frm-1.c: New test.
+
+2023-09-13 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.target/riscv/rvv/base/vector-abi-9.c: Removed.
+
+2023-09-13 Jiufu Guo <guojiufu@linux.ibm.com>
+
+ PR tree-optimization/111303
+ * gcc.dg/pr111303.c: New test.
+
+2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * lib/target-supports.exp: Enable vect_int for RVV.
+
+2023-09-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/111357
+ * g++.dg/ext/integer-pack7.C: New test.
+
+2023-09-12 Jason Merrill <jason@redhat.com>
+
+ PR c++/107198
+ * g++.dg/eh/no-exceptions1.C: New test.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/stack-protector-8.c: New test.
+ * gcc.target/aarch64/stack-protector-9.c: Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/sve/pcs/stack_clash_3.c: Avoid redundant probes.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/stack-check-prologue-17.c: Expect the probe
+ to be at offset 1024 rather than offset 0.
+ * gcc.target/aarch64/stack-check-prologue-18.c: Likewise.
+ * gcc.target/aarch64/stack-check-prologue-19.c: Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/stack-check-prologue-18.c: New test.
+ * gcc.target/aarch64/stack-check-prologue-19.c: Likewise.
+ * gcc.target/aarch64/stack-check-prologue-20.c: Likewise.
+
+2023-09-12 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/stack-check-prologue-17.c: New test.
+
+2023-09-12 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/107881
+ * gcc.c-torture/execute/pr107881-1.c: New test.
+ * gcc.dg/tree-ssa/cmpeq-4.c: New test.
+ * gcc.dg/tree-ssa/cmpxor-1.c: New test.
+
+2023-09-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-4.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp: New test.
+ * gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c: New file.
+
+2023-09-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/111338
+ * gcc.dg/bitint-37.c: New test.
+
+2023-09-12 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * gm2/switches/case/fail/missingclause.mod: New test.
+ * gm2/switches/case/fail/switches-case-fail.exp: New test.
+ * gm2/switches/case/pass/enumcase.mod: New test.
+ * gm2/switches/case/pass/enumcase2.mod: New test.
+ * gm2/switches/case/pass/switches-case-pass.exp: New test.
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+
+ * lib/target-supports.exp (check_effective_target_stack_size): For
+ nvptx target, stack size limits are relevant for execution only.
+
+2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * gcc.target/riscv/xtheadbb-strcmp.c: New test.
+ * gcc.target/riscv/zbb-strcmp-disabled-2.c: New test.
+ * gcc.target/riscv/zbb-strcmp-disabled.c: New test.
+ * gcc.target/riscv/zbb-strcmp-unaligned.c: New test.
+ * gcc.target/riscv/zbb-strcmp.c: New test.
+ * gcc.target/riscv/zbb-strcmp-limit.c: New file.
+
+2023-09-12 Christoph Müllner <christoph.muellner@vrull.eu>
+
+ * gcc.target/riscv/xtheadbb-strlen-unaligned.c: New test.
+ * gcc.target/riscv/xtheadbb-strlen.c: New test.
+ * gcc.target/riscv/zbb-strlen-disabled-2.c: New test.
+ * gcc.target/riscv/zbb-strlen-disabled.c: New test.
+ * gcc.target/riscv/zbb-strlen-unaligned.c: New test.
+ * gcc.target/riscv/zbb-strlen.c: New test.
+
+2023-09-12 Lehua Ding <lehua.ding@rivai.ai>
+
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c: Add vrem op.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_run-1.c: Moved to...
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c: ...here.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_run-2.c: Moved to...
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c: ...here.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_run-3.c: Moved to...
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c: ...here.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_run-4.c: Moved to...
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c: ...here.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_run-5.c: Moved to...
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c: ...here.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical-1.c: Removed.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical-2.c: Removed.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical-3.c: Removed.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical-4.c: Removed.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical-5.c: Removed.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c: New test.
+ * gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c: New test.
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+
+ * lib/scanasm.exp (configure_check-function-bodies): New proc.
+ (parse_function_bodies, check-function-bodies): Use it.
+
+2023-09-12 Mikael Morin <mikael@gcc.gnu.org>
+
+ PR fortran/110996
+ * gfortran.dg/pr110996.f90: New test.
+
+2023-09-12 Tobias Burnus <tobias@codesourcery.com>
+
+ * c-c++-common/gomp/allocate-5.c: Fix testcase; make some
+ dg-messages for 'sorry' as c++, only.
+ * c-c++-common/gomp/directive-1.c: Make a 'sorry' c++ only.
+ * c-c++-common/gomp/allocate-9.c: New test.
+ * c-c++-common/gomp/allocate-11.c: New test.
+ * c-c++-common/gomp/allocate-12.c: New test.
+ * c-c++-common/gomp/allocate-14.c: New test.
+ * c-c++-common/gomp/allocate-15.c: New test.
+ * c-c++-common/gomp/allocate-16.c: New test.
+
+2023-09-12 xuli <xuli1@eswincomputing.com>
+
+ * gcc.target/riscv/rvv/base/tuple_create.c: New test.
+
+2023-09-12 Fei Gao <gaofei@eswincomputing.com>
+
+ * gcc.target/riscv/rv32e_zcmp.c: remove -fno-shrink-wrap-separate
+ * gcc.target/riscv/rv32i_zcmp.c: likewise
+ * gcc.target/riscv/zcmp_push_fpr.c: likewise
+ * gcc.target/riscv/zcmp_stack_alignment.c: likewise
+ * gcc.target/riscv/zcmp_shrink_wrap_separate.c: New test.
+ * gcc.target/riscv/zcmp_shrink_wrap_separate2.c: New test.
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111348
+ * gcc.dg/tree-ssa/minmax-26.c: New test.
+
+2023-09-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/111340
+ * gcc.target/i386/pr111340.c: New test.
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111349
+ * gcc.dg/tree-ssa/minmax-25.c: New test.
+
+2023-09-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/111311
+ * gcc.target/riscv/rvv/autovec/partial/slp-1.c: Adapt test.
+ * gcc.target/riscv/rvv/autovec/partial/slp-16.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/partial/slp-17.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/partial/slp-3.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/partial/slp-5.c: Ditto.
+ * gcc.target/riscv/rvv/autovec/vls/compress-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/compress-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/compress-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/compress-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/compress-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/compress-6.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-6.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/merge-7.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-1.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-2.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-3.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-4.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-5.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-6.c: New test.
+ * gcc.target/riscv/rvv/autovec/vls/perm-7.c: New test.
+
+2023-09-11 Andrew Pinski <apinski@marvell.com>
+
+ PR tree-optimization/111346
+ * gcc.dg/tree-ssa/minmaxcmp-1.c: New test.
+
+2023-09-11 liuhongt <hongtao.liu@intel.com>
+
+ * gcc.target/i386/pr111306.c: New test.
+
2023-09-10 Andrew Pinski <apinski@marvell.com>
PR tree-optimization/111331
diff --git a/gcc/testsuite/c-c++-common/analyzer/volatile-1.c b/gcc/testsuite/c-c++-common/analyzer/volatile-1.c
new file mode 100644
index 0000000..f8440d4
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/analyzer/volatile-1.c
@@ -0,0 +1,18 @@
+#include "../../gcc.dg/analyzer/analyzer-decls.h"
+
+volatile int g;
+
+void test_global (void)
+{
+ int v1 = g;
+ int v2 = g;
+ __analyzer_eval (v1 == v2); /* { dg-warning "UNKNOWN" } */
+}
+
+void test_local (void)
+{
+ volatile int x = 0;
+ int v1 = x;
+ int v2 = x;
+ __analyzer_eval (v1 == v2); /* { dg-warning "UNKNOWN" } */
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-11.c b/gcc/testsuite/c-c++-common/gomp/allocate-11.c
new file mode 100644
index 0000000..f9ad50a
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-11.c
@@ -0,0 +1,40 @@
+/* TODO: enable for C++ once implemented. */
+/* { dg-do compile { target c } } */
+
+void bar();
+void use (int*);
+
+void
+f (int i)
+{
+ switch (i) /* { dg-note "switch starts here" } */
+ {
+ int j; /* { dg-note "'j' declared here" } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-1 } */
+ #pragma omp allocate(j)
+ case 42: /* { dg-error "switch jumps over OpenMP 'allocate' allocation" } */
+ bar ();
+ /* { dg-warning "statement will never be executed \\\[-Wswitch-unreachable\\\]" "" { target *-*-* } .-1 } */
+ break;
+ case 51: /* { dg-error "switch jumps over OpenMP 'allocate' allocation" } */
+ use (&j);
+ break;
+ }
+}
+
+int
+h (int i2)
+{
+ if (i2 == 5)
+ goto label; /* { dg-error "jump skips OpenMP 'allocate' allocation" } */
+ return 5;
+
+ int k2; /* { dg-note "'k2' declared here" } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-1 } */
+ int j2 = 4; /* { dg-note "'j2' declared here" } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-1 } */
+ #pragma omp allocate(k2, j2)
+label: /* { dg-note "label 'label' defined here" } */
+ k2 = 4;
+ return j2 + k2;
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-12.c b/gcc/testsuite/c-c++-common/gomp/allocate-12.c
new file mode 100644
index 0000000..3c7c3bb
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-12.c
@@ -0,0 +1,49 @@
+/* TODO: enable for C++ once implemented. */
+/* { dg-do compile { target c } } */
+
+typedef enum omp_allocator_handle_t
+#if __cplusplus >= 201103L
+: __UINTPTR_TYPE__
+#endif
+{
+ omp_default_mem_alloc = 1,
+ omp_low_lat_mem_alloc = 5,
+ __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+} omp_allocator_handle_t;
+
+int
+f ()
+{
+ omp_allocator_handle_t my_allocator;
+ int n = 5; /* { dg-note "to be allocated variable declared here" } */
+ my_allocator = omp_default_mem_alloc; /* { dg-note "modified here" } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-2 } */
+ #pragma omp allocate(n) allocator(my_allocator) /* { dg-error "variable 'my_allocator' used in the 'allocator' clause must not be modified between declaration of 'n' and its 'allocate' directive" } */
+ n = 7;
+ return n;
+}
+
+
+int
+g ()
+{
+ int n = 5; /* { dg-note "to be allocated variable declared here" } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-1 } */
+ omp_allocator_handle_t my_allocator = omp_low_lat_mem_alloc; /* { dg-note "declared here" } */
+ #pragma omp allocate(n) allocator(my_allocator) /* { dg-error "variable 'my_allocator' used in the 'allocator' clause must be declared before 'n'" } */
+ n = 7;
+ return n;
+}
+
+int
+h ()
+{
+ /* my_allocator uninitialized - but only diagnosed in the ME with -Wuninitialized;
+ see gomp/allocate-10.c. */
+ omp_allocator_handle_t my_allocator;
+ int n = 5;
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target *-*-* } .-1 } */
+ #pragma omp allocate(n) allocator(my_allocator)
+ n = 7;
+ return n;
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-14.c b/gcc/testsuite/c-c++-common/gomp/allocate-14.c
new file mode 100644
index 0000000..b25da54
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-14.c
@@ -0,0 +1,26 @@
+/* TODO: enable for C++ once implemented. */
+/* { dg-do compile { target c } } */
+
+#pragma omp begin declare target
+void
+f ()
+{
+
+ int var; /* { dg-error "'allocate' directive for 'var' inside a target region must specify an 'allocator' clause" } */
+ #pragma omp allocate(var)
+ var = 5;
+}
+#pragma omp end declare target
+
+void
+h ()
+{
+ #pragma omp target
+ #pragma omp parallel
+ #pragma omp serial
+ {
+ int var2[5]; /* { dg-error "'allocate' directive for 'var2' inside a target region must specify an 'allocator' clause" } */
+ #pragma omp allocate(var2)
+ var2[0] = 7;
+ }
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-15.c b/gcc/testsuite/c-c++-common/gomp/allocate-15.c
new file mode 100644
index 0000000..d9600f9
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-15.c
@@ -0,0 +1,28 @@
+/* TODO: enable for C++ once implemented. */
+/* { dg-do compile { target c } } */
+
+#pragma omp requires dynamic_allocators
+
+#pragma omp begin declare target
+void
+f ()
+{
+
+ int var; /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive, used for 'var', not yet supported" } */
+ #pragma omp allocate(var)
+ var = 5;
+}
+#pragma omp end declare target
+
+void
+h ()
+{
+ #pragma omp target
+ #pragma omp parallel
+ #pragma omp serial
+ {
+ int var2[5]; /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive, used for 'var2', not yet supported" } */
+ #pragma omp allocate(var2)
+ var2[0] = 7;
+ }
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-16.c b/gcc/testsuite/c-c++-common/gomp/allocate-16.c
new file mode 100644
index 0000000..0873803
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-16.c
@@ -0,0 +1,38 @@
+/* TODO: enable for C++ once implemented. */
+/* { dg-do compile { target c } } */
+
+typedef enum omp_allocator_handle_t
+#if __cplusplus >= 201103L
+: __UINTPTR_TYPE__
+#endif
+{
+ omp_default_mem_alloc = 1,
+ omp_low_lat_mem_alloc = 5,
+ __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+} omp_allocator_handle_t;
+
+omp_allocator_handle_t foo(int, int *);
+
+
+void
+f ()
+{
+ int v; /* { dg-note "to be allocated variable declared here" } */
+ int n = 5;
+ int a = 1; /* { dg-note "declared here" } */
+ int b[n];
+ b[a] = 5;
+ #pragma omp allocate (v) allocator (foo (a, &b[a])) /* { dg-error "variable 'a' used in the 'allocator' clause must be declared before 'v'" } */
+}
+
+void
+g ()
+{
+ int n = 5;
+ int a = 1;
+ int b[n];
+ b[a] = 5;
+ int v; /* { dg-note "to be allocated variable declared here" } */
+ a = 2; /* { dg-note "modified here" } */
+ #pragma omp allocate (v) allocator (foo (a, &b[a])) /* { dg-error "variable 'a' used in the 'allocator' clause must not be modified between declaration of 'v' and its 'allocate' directive" } */
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-5.c b/gcc/testsuite/c-c++-common/gomp/allocate-5.c
index 8a91812..2ca4786 100644
--- a/gcc/testsuite/c-c++-common/gomp/allocate-5.c
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-5.c
@@ -18,60 +18,64 @@ typedef enum omp_allocator_handle_t
void
foo ()
{
+ omp_allocator_handle_t my_allocator = omp_default_mem_alloc;
int a, b;
- omp_allocator_handle_t my_allocator;
-#pragma omp allocate (a) /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" } */
-#pragma omp allocate (b) allocator(my_allocator) /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" } */
+ static int c;
+#pragma omp allocate (a) /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } } */
+#pragma omp allocate (b) allocator(my_allocator) /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } } */
+#pragma omp allocate(c) align(32)
+ /* { dg-message "'allocator' clause required for static variable 'c'" "" { target c } .-1 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
}
void
bar ()
{
- int a, b;
+ int a, a2, b;
omp_allocator_handle_t my_allocator;
#pragma omp allocate /* { dg-error "expected '\\(' before end of line" } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
#pragma omp allocate allocator(my_allocator) /* { dg-error "expected '\\(' before 'allocator'" } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
#pragma omp allocate(a) foo(my_allocator) /* { dg-error "expected 'allocator'" } */
/* { dg-error "expected end of line before '\\(' token" "" { target *-*-* } .-1 } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-2 } */
-#pragma omp allocate(a) allocator(b) /* { dg-error "'allocator' clause allocator expression has type 'int' rather than 'omp_allocator_handle_t'" "todo: cp/semantics.c" { xfail c++ } } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+#pragma omp allocate(a2) allocator(b) /* { dg-error "'allocator' clause allocator expression has type 'int' rather than 'omp_allocator_handle_t'" "todo: cp/semantics.c" { xfail c++ } } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
}
void
align_test ()
{
- int i;
- #pragma omp allocate(i) allocator(omp_default_mem_alloc), align(32)
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
- #pragma omp allocate(i) align ( 32 ),allocator(omp_default_mem_alloc)
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
- #pragma omp allocate(i),allocator(omp_default_mem_alloc) align(32)
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
- #pragma omp allocate(i) align ( 32 ) allocator(omp_default_mem_alloc)
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
+ int i1,i2,i3,i4,i5,i6;
+ #pragma omp allocate(i1) allocator(omp_default_mem_alloc), align(32)
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(i2) align ( 32 ),allocator(omp_default_mem_alloc)
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(i3),allocator(omp_default_mem_alloc) align(32)
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(i4) align ( 32 ) allocator(omp_default_mem_alloc)
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
- #pragma omp allocate(i) allocator ( omp_high_bw_mem_alloc ), align ( 32 ) allocator(omp_default_mem_alloc)
+ #pragma omp allocate(i5) allocator ( omp_high_bw_mem_alloc ), align ( 32 ) allocator(omp_default_mem_alloc)
/* { dg-error "too many 'allocator' clauses" "" { target *-*-* } .-1 } */
/* { dg-error "expected end of line before '\\)' token" "" { target *-*-* } .-2 } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-3 } */
- #pragma omp allocate(i) align ( 32 ), align(32) allocator(omp_default_mem_alloc)
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-3 } */
+ #pragma omp allocate(i6) align ( 32 ), align(32) allocator(omp_default_mem_alloc)
/* { dg-error "too many 'align' clauses" "" { target *-*-* } .-1 } */
/* { dg-error "expected end of line before '\\)' token" "" { target *-*-* } .-2 } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-3 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-3 } */
}
void
align_test2 ()
{
- int i;
+ int i, i2,i3;
#pragma omp allocate(i) align (32.0) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
- #pragma omp allocate(i) align ( 31 ) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
- #pragma omp allocate(i) align ( -32 ) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
- /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target *-*-* } .-1 } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(i2) align ( 31 ) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(i3) align ( -32 ) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
+ /* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
}
diff --git a/gcc/testsuite/c-c++-common/gomp/allocate-9.c b/gcc/testsuite/c-c++-common/gomp/allocate-9.c
new file mode 100644
index 0000000..8e01041
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/gomp/allocate-9.c
@@ -0,0 +1,108 @@
+typedef enum omp_allocator_handle_t
+#if __cplusplus >= 201103L
+: __UINTPTR_TYPE__
+#endif
+{
+ omp_null_allocator = 0,
+ omp_default_mem_alloc = 1,
+ omp_large_cap_mem_alloc = 2,
+ omp_const_mem_alloc = 3,
+ omp_high_bw_mem_alloc = 4,
+ omp_low_lat_mem_alloc = 5,
+ omp_cgroup_mem_alloc = 6,
+ omp_pteam_mem_alloc = 7,
+ omp_thread_mem_alloc = 8,
+ __ompx_last_mem_alloc = omp_thread_mem_alloc,
+ __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+} omp_allocator_handle_t;
+
+
+static int A[5] = {1,2,3,4,5};
+int B, C, D;
+
+/* If the following fails bacause of added predefined allocators, please update
+ - c/c-parser.c's c_parser_omp_allocate
+ - fortran/openmp.cc's is_predefined_allocator
+ - libgomp/env.c's parse_allocator
+ - libgomp/libgomp.texi (document the new values - multiple locations)
+ + ensure that the memory-spaces are also up to date. */
+
+#pragma omp allocate(A) align(32) allocator((omp_allocator_handle_t) 9) /* { dg-error "'allocator' clause requires a predefined allocator as 'A' is static" "" { xfail c++ } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+
+
+// typo in allocator name:
+#pragma omp allocate(A) allocator(omp_low_latency_mem_alloc)
+/* { dg-error "'omp_low_latency_mem_alloc' undeclared here \\(not in a function\\); did you mean 'omp_low_lat_mem_alloc'\\?" "" { target c } .-1 } */
+/* { dg-error "'omp_low_latency_mem_alloc' was not declared in this scope; did you mean 'omp_low_lat_mem_alloc'\\?" "" { target c++ } .-2 } */
+/* { dg-error "'allocator' clause required for static variable 'A'" "" { target c } .-3 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-4 } */
+
+/* align be const multiple of 2 */
+#pragma omp allocate(A) align(31) allocator(omp_default_mem_alloc) /* { dg-error "'align' clause argument needs to be positive constant power of two integer expression" } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' for static variables like 'A' not yet supported" "" { target c } .-1 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+
+/* allocator missing (required as A is static) */
+#pragma omp allocate(A) align(32) /* { dg-error "'allocator' clause required for static variable 'A'" "" { xfail c++ } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+
+/* "expression in the clause must be a constant expression that evaluates to one of the
+ predefined memory allocator values -> omp_low_lat_mem_alloc" */
+#pragma omp allocate(B) allocator((omp_allocator_handle_t) (omp_high_bw_mem_alloc+1)) align(32) /* OK: omp_low_lat_mem_alloc */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' for static variables like 'B' not yet supported" "" { target c } .-1 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+
+#pragma omp allocate(C) allocator((omp_allocator_handle_t) 2) /* OK: omp_large_cap_mem_alloc */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' for static variables like 'C' not yet supported" "" { target c } .-1 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+
+#pragma omp allocate(A) align(32) allocator(omp_null_allocator) /* { dg-error "'allocator' clause requires a predefined allocator as 'A' is static" "" { xfail c++ } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+
+#pragma omp allocate(C) align(32) allocator(omp_large_cap_mem_alloc) /* { dg-error "'C' already appeared as list item in an 'allocate' directive" "" { xfail *-*-* } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' for static variables like 'C' not yet supported" "" { target c } .-1 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+
+// allocate directive in same TU
+int f()
+{
+ #pragma omp allocate(D) align(32) allocator(omp_large_cap_mem_alloc) /* { dg-error "'allocate' directive must be in the same scope as 'D'" "" { xfail c++ } } */
+/* { dg-note "declared here" "" { target c } 21 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+ return A[0];
+}
+
+int g()
+{
+ int a2=1, b2=2;
+ #pragma omp allocate(a2)
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ #pragma omp allocate(a2) /* { dg-error "'a2' already appeared as list item in an 'allocate' directive" "" { xfail c++ } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ {
+ int c2=3;
+ #pragma omp allocate(c2, b2) /* { dg-error "'allocate' directive must be in the same scope as 'b2'" "" { xfail c++ } } */
+/* { dg-note "declared here" "" { target c } .-8 } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-2 } */
+ return c2+a2+b2;
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target c } .-5 } */
+ /* { dg-message "sorry, unimplemented: OpenMP 'allocate' directive" "" { target c } .-12 } */
+ }
+}
+
+int h(int q)
+{
+ #pragma omp allocate(q) /* { dg-error "function parameter 'q' may not appear as list item in an 'allocate' directive" "" { xfail c++ } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ return q;
+}
+
+int
+k ()
+{
+ static int var3 = 8;
+ #pragma omp allocate(var3) allocator((omp_allocator_handle_t)-1L) /* { dg-error "'allocator' clause requires a predefined allocator as 'var3' is static" "" { target c } } */
+/* { dg-message "sorry, unimplemented: '#pragma omp allocate' not yet supported" "" { target c++ } .-1 } */
+ return var3;
+}
diff --git a/gcc/testsuite/c-c++-common/gomp/directive-1.c b/gcc/testsuite/c-c++-common/gomp/directive-1.c
index fc44153..21ca319 100644
--- a/gcc/testsuite/c-c++-common/gomp/directive-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/directive-1.c
@@ -19,7 +19,7 @@ foo (void)
int i, k = 0, l = 0;
#pragma omp allocate, (i) /* { dg-error "expected '\\\(' before ',' token" } */
/* { dg-error "expected end of line before ',' token" "" { target c++ } .-1 } */
- /* { dg-message "not yet supported" "" { target *-*-* } .-2 } */
+ /* { dg-message "not yet supported" "" { target c++ } .-2 } */
#pragma omp critical, (bar) /* { dg-error "expected an OpenMP clause before '\\\(' token" } */
;
#pragma omp flush, (k, l) /* { dg-error "expected '\\\(' or end of line before ',' token" "" { target c } } */
diff --git a/gcc/testsuite/g++.dg/eh/no-exceptions1.C b/gcc/testsuite/g++.dg/eh/no-exceptions1.C
new file mode 100644
index 0000000..4b77064
--- /dev/null
+++ b/gcc/testsuite/g++.dg/eh/no-exceptions1.C
@@ -0,0 +1,19 @@
+// PR c++/107198
+// { dg-additional-options -fno-exceptions }
+
+struct A {
+ A() { throw 0; } // { dg-error disabled }
+ A(int i) { throw i; }
+ A(const A&) { throw 10; }
+};
+
+void try_idx (int i)
+{
+ int t = 10;
+ try {
+ struct X {
+ A e1[2], e2;
+ }
+ x2[3] = { { 1, 2, 3 }, { 4, 5, 6 } };
+ } catch (int x) { t = x; } // { dg-prune-output "not declared" }
+}
diff --git a/gcc/testsuite/g++.dg/ext/integer-pack7.C b/gcc/testsuite/g++.dg/ext/integer-pack7.C
new file mode 100644
index 0000000..95b1195
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/integer-pack7.C
@@ -0,0 +1,38 @@
+// PR c++/111357
+// { dg-do compile { target c++11 } }
+
+namespace std {
+ template<typename _Tp, _Tp... _Idx>
+ struct integer_sequence
+ { };
+
+ template<typename _Tp, _Tp _Num>
+ using make_integer_sequence
+ = integer_sequence<_Tp, __integer_pack(_Num)...>;
+}
+
+using std::integer_sequence;
+using std::make_integer_sequence;
+
+template<int... V>
+void g(integer_sequence<int,V...>)
+{}
+
+template<typename ...T>
+struct c1
+{
+ static constexpr int value = 1;
+ constexpr operator int() { return value; }
+};
+template<typename T>
+struct R
+{
+ using S = make_integer_sequence<int,c1<T>{}>;
+
+ R() noexcept(noexcept(g(S())))
+ {}
+};
+int main()
+{
+ R<int>();
+}
diff --git a/gcc/testsuite/g++.dg/template/nontype12.C b/gcc/testsuite/g++.dg/template/nontype12.C
index 9a9c3ac..a0e7018 100644
--- a/gcc/testsuite/g++.dg/template/nontype12.C
+++ b/gcc/testsuite/g++.dg/template/nontype12.C
@@ -5,7 +5,8 @@ template<typename T> struct A
{
template<T> int foo(); // { dg-error "double" "" { target c++17_down } }
template<template<T> class> int bar(); // { dg-bogus {double[^\n]*\n[^\n]*C:7:[^\n]*double} "" { xfail c++17_down } }
- // { dg-error "double" "" { target c++17_down } .-1 }
+ // The above xfailed dg-bogus test means that we issue two errors
+ // for the invalid 'double' NTTP, and preferably we'd issue just one.
template<T> struct X; // { dg-error "double" "" { target c++17_down } }
};
diff --git a/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
index faad5be..275ecac 100644
--- a/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
+++ b/gcc/testsuite/g++.dg/warn/Wstringop-overflow-4.C
@@ -151,7 +151,9 @@ void test_strcpy_new_int16_t (size_t n, const size_t vals[])
as size_t as a result of threading. See PR 101688 comment #2. */
T (S (1), new int16_t[r_0_imax]);
- T (S (2), new int16_t[r_0_imax + 1]);
+ /* Similar to PR 101688 the following can result in a bougs warning because
+ of threading. */
+ T (S (2), new int16_t[r_0_imax + 1]); // { dg-bogus "into a region of size" "" { xfail { ilp32 } } }
T (S (9), new int16_t[r_0_imax * 2 + 1]);
int r_1_imax = SR (1, INT_MAX);
diff --git a/gcc/testsuite/g++.dg/abi/nvptx-nrv1.C b/gcc/testsuite/g++.target/nvptx/abi-nrv1.C
index 6a05b4f..019d23a 100644
--- a/gcc/testsuite/g++.dg/abi/nvptx-nrv1.C
+++ b/gcc/testsuite/g++.target/nvptx/abi-nrv1.C
@@ -1,4 +1,4 @@
-// { dg-do compile { target nvptx-*-* } }
+// { dg-do compile }
// { dg-additional-options "-m64" }
// Check NRV optimization doesn't change the PTX prototypes.
diff --git a/gcc/testsuite/g++.dg/abi/nvptx-ptrmem1.C b/gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C
index 08ffd7e..346baaf 100644
--- a/gcc/testsuite/g++.dg/abi/nvptx-ptrmem1.C
+++ b/gcc/testsuite/g++.target/nvptx/abi-ptrmem1.C
@@ -1,4 +1,4 @@
-// { dg-do compile { target nvptx-*-* } }
+// { dg-do compile }
// { dg-additional-options "-m64" }
// ptr to member data is like sizeof.
@@ -9,7 +9,7 @@ struct A{};
typedef int A::*pmd;
typedef void (A::*pmf) ();
-// { dg-final { scan-assembler ".extern .func \\(.param.u64 %out_retval\\) _Z8dcl_rpmdv;" } }
+// { dg-final { scan-assembler ".extern .func \\(.param.u64 %value_out\\) _Z8dcl_rpmdv;" } }
pmd dcl_rpmd ();
// { dg-final { scan-assembler ".extern .func _Z8dcl_rpmfv \\(.param.u64 %in_ar0\\);" } }
@@ -29,7 +29,7 @@ void test_1 ()
dcl_apmf (0);
}
-// { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %out_retval\\) _Z8dfn_rpmdv(?:;|\[\r\n\]+\{)" 2 } }
+// { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %value_out\\) _Z8dfn_rpmdv(?:;|\[\r\n\]+\{)" 2 } }
pmd dfn_rpmd ()
{
return 0;
diff --git a/gcc/testsuite/g++.target/nvptx/nvptx.exp b/gcc/testsuite/g++.target/nvptx/nvptx.exp
new file mode 100644
index 0000000..7bde010
--- /dev/null
+++ b/gcc/testsuite/g++.target/nvptx/nvptx.exp
@@ -0,0 +1,56 @@
+# Specific regression driver for nvptx.
+# Copyright (C) 2000-2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# G++ testsuite that uses the `dg.exp' driver.
+
+# Exit immediately if this isn't a nvptx target.
+if ![istarget nvptx*-*-*] then {
+ return
+}
+
+# Load support procs.
+load_lib g++-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CXXFLAGS
+if ![info exists DEFAULT_CXXFLAGS] then {
+ set DEFAULT_CXXFLAGS " -pedantic-errors -Wno-long-long"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Recursively find files in $dir and subdirs, do not walk into subdirs
+# that contain their own .exp file.
+proc find-cxx-tests { dir suffix } {
+ set tests [lsort [glob -nocomplain -directory $dir "*.$suffix" ]]
+ foreach subdir [lsort [glob -nocomplain -type d -directory $dir *]] {
+ if { [glob -nocomplain -directory $subdir *.exp] eq "" } {
+ eval lappend tests [find-cxx-tests $subdir $suffix]
+ }
+ }
+ return $tests
+}
+
+set tests [find-cxx-tests $srcdir/$subdir {C}]
+
+# Main loop.
+g++-dg-runtest $tests "" $DEFAULT_CXXFLAGS
+
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/g++.target/powerpc/altivec-19.C b/gcc/testsuite/g++.target/powerpc/altivec-19.C
new file mode 100644
index 0000000..5879e72
--- /dev/null
+++ b/gcc/testsuite/g++.target/powerpc/altivec-19.C
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2 " } */
+
+#include <altivec.h>
+
+unsigned int foo (vector unsigned char a, vector unsigned char b) {
+ return vec_first_match_or_eos_index (a, b);
+}
+/* { dg-final { scan-assembler-not {\mrldicl\M} } } */
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr111414-1.c b/gcc/testsuite/gcc.c-torture/compile/pr111414-1.c
new file mode 100644
index 0000000..13fbdae
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr111414-1.c
@@ -0,0 +1,13 @@
+int a, b, c, d, e, f, g;
+int h(int i) { return b >= 2 ?: i >> b; }
+void j() {
+ int k;
+ int *l = &c;
+ for (; d; d++) {
+ g = h(0 != j);
+ f = g >> a;
+ k = f << 7;
+ e = k > 5 ? k : 0;
+ *l ^= e;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c b/gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c
new file mode 100644
index 0000000..6705a05
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/minmaxcmp-1.c
@@ -0,0 +1,51 @@
+#define func(vol, op1, op2) \
+_Bool op1##_##op2##_##vol (int a, int b) \
+{ \
+ vol int x = op_##op1(a, b); \
+ return op_##op2(x, a); \
+}
+
+#define op_lt(a, b) ((a) < (b))
+#define op_le(a, b) ((a) <= (b))
+#define op_eq(a, b) ((a) == (b))
+#define op_ne(a, b) ((a) != (b))
+#define op_gt(a, b) ((a) > (b))
+#define op_ge(a, b) ((a) >= (b))
+#define op_min(a, b) ((a) < (b) ? (a) : (b))
+#define op_max(a, b) ((a) > (b) ? (a) : (b))
+
+
+#define funcs(a) \
+ a(min,lt) \
+ a(max,lt) \
+ a(min,gt) \
+ a(max,gt) \
+ a(min,le) \
+ a(max,le) \
+ a(min,ge) \
+ a(max,ge) \
+ a(min,ne) \
+ a(max,ne) \
+ a(min,eq) \
+ a(max,eq)
+
+#define funcs1(a,b) \
+func(,a,b) \
+func(volatile,a,b)
+
+funcs(funcs1)
+
+#define test(op1,op2) \
+do { \
+ if (op1##_##op2##_(x,y) != op1##_##op2##_volatile(x,y)) \
+ __builtin_abort(); \
+} while(0);
+
+int main()
+{
+ for(int x = -10; x < 10; x++)
+ for(int y = -10; y < 10; y++)
+ {
+ funcs(test)
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr107881-1.c b/gcc/testsuite/gcc.c-torture/execute/pr107881-1.c
new file mode 100644
index 0000000..063ec4c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr107881-1.c
@@ -0,0 +1,115 @@
+#define func(vol, op1, op2, op3) \
+_Bool op1##_##op2##_##op3##_##vol (int a, int b) \
+{ \
+ vol _Bool x = op_##op1(a, b); \
+ vol _Bool y = op_##op2(a, b); \
+ return op_##op3(x, y); \
+}
+
+#define op_lt(a, b) ((a) < (b))
+#define op_le(a, b) ((a) <= (b))
+#define op_eq(a, b) ((a) == (b))
+#define op_ne(a, b) ((a) != (b))
+#define op_gt(a, b) ((a) > (b))
+#define op_ge(a, b) ((a) >= (b))
+#define op_xor(a, b) ((a) ^ (b))
+
+
+#define funcs(a) \
+ a(lt,lt,ne) \
+ a(lt,lt,eq) \
+ a(lt,lt,xor) \
+ a(lt,le,ne) \
+ a(lt,le,eq) \
+ a(lt,le,xor) \
+ a(lt,gt,ne) \
+ a(lt,gt,eq) \
+ a(lt,gt,xor) \
+ a(lt,ge,ne) \
+ a(lt,ge,eq) \
+ a(lt,ge,xor) \
+ a(lt,eq,ne) \
+ a(lt,eq,eq) \
+ a(lt,eq,xor) \
+ a(lt,ne,ne) \
+ a(lt,ne,eq) \
+ a(lt,ne,xor) \
+ \
+ a(le,lt,ne) \
+ a(le,lt,eq) \
+ a(le,lt,xor) \
+ a(le,le,ne) \
+ a(le,le,eq) \
+ a(le,le,xor) \
+ a(le,gt,ne) \
+ a(le,gt,eq) \
+ a(le,gt,xor) \
+ a(le,ge,ne) \
+ a(le,ge,eq) \
+ a(le,ge,xor) \
+ a(le,eq,ne) \
+ a(le,eq,eq) \
+ a(le,eq,xor) \
+ a(le,ne,ne) \
+ a(le,ne,eq) \
+ a(le,ne,xor) \
+ \
+ a(gt,lt,ne) \
+ a(gt,lt,eq) \
+ a(gt,lt,xor) \
+ a(gt,le,ne) \
+ a(gt,le,eq) \
+ a(gt,le,xor) \
+ a(gt,gt,ne) \
+ a(gt,gt,eq) \
+ a(gt,gt,xor) \
+ a(gt,ge,ne) \
+ a(gt,ge,eq) \
+ a(gt,ge,xor) \
+ a(gt,eq,ne) \
+ a(gt,eq,eq) \
+ a(gt,eq,xor) \
+ a(gt,ne,ne) \
+ a(gt,ne,eq) \
+ a(gt,ne,xor) \
+ \
+ a(ge,lt,ne) \
+ a(ge,lt,eq) \
+ a(ge,lt,xor) \
+ a(ge,le,ne) \
+ a(ge,le,eq) \
+ a(ge,le,xor) \
+ a(ge,gt,ne) \
+ a(ge,gt,eq) \
+ a(ge,gt,xor) \
+ a(ge,ge,ne) \
+ a(ge,ge,eq) \
+ a(ge,ge,xor) \
+ a(ge,eq,ne) \
+ a(ge,eq,eq) \
+ a(ge,eq,xor) \
+ a(ge,ne,ne) \
+ a(ge,ne,eq) \
+ a(ge,ne,xor)
+
+#define funcs1(a,b,c) \
+func(,a,b,c) \
+func(volatile,a,b,c)
+
+funcs(funcs1)
+
+#define test(op1,op2,op3) \
+do { \
+ if (op1##_##op2##_##op3##_(x,y) \
+ != op1##_##op2##_##op3##_volatile(x,y)) \
+ __builtin_abort(); \
+} while(0);
+
+int main()
+{
+ for(int x = -10; x < 10; x++)
+ for(int y = -10; y < 10; y++)
+ {
+ funcs(test)
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr111431-1.c b/gcc/testsuite/gcc.c-torture/execute/pr111431-1.c
new file mode 100644
index 0000000..a96dbad
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr111431-1.c
@@ -0,0 +1,39 @@
+int
+foo (int a)
+{
+ int b = a == 0;
+ return (a & b);
+}
+
+#define function(vol,cst) \
+__attribute__((noipa)) \
+_Bool func_##cst##_##vol(vol int a) \
+{ \
+ vol int b = a == cst; \
+ return (a & b); \
+}
+
+#define funcdefs(cst) \
+function(,cst) \
+function(volatile,cst)
+
+#define funcs(f) \
+f(0) \
+f(1) \
+f(5)
+
+funcs(funcdefs)
+
+#define test(cst) \
+do { \
+ if(func_##cst##_(a) != func_##cst##_volatile(a))\
+ __builtin_abort(); \
+} while(0);
+int main(void)
+{
+ for(int a = -10; a <= 10; a++)
+ {
+ funcs(test)
+ }
+}
+
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
index 968f6ee..883921b 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-47.c
@@ -65,15 +65,15 @@ void warn_i16_64 (int16_t i)
like x86_64 it's a series of BIT_FIELD_REFs. The overflow by
the former is detected but the latter is not yet. */
- extern char warn_a64[64]; // { dg-message "at offset (1|128) into destination object 'warn_a64' of size (63|64)" "pr97027 note" { xfail { ! aarch64-*-* } } }
+ extern char warn_a64[64]; // { dg-message "at offset (1|128) into destination object 'warn_a64' of size (63|64)" "pr97027 note" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
void *p = warn_a64 + 1;
I16_64 *q = (I16_64*)p;
- *q = (I16_64){ i }; // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! aarch64-*-* } } }
+ *q = (I16_64){ i }; // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
char a64[64];
p = a64 + 1;
q = (I16_64*)p;
- *q = (I16_64){ i }; // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! aarch64-*-* } } }
+ *q = (I16_64){ i }; // { dg-warning "writing (1 byte|64 bytes) into a region of size (0|63)" "pr97027" { xfail { ! { aarch64-*-* riscv*-*-* } } } }
sink (p);
}
diff --git a/gcc/testsuite/gcc.dg/binop-andeq1.c b/gcc/testsuite/gcc.dg/binop-andeq1.c
new file mode 100644
index 0000000..2a92b8f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/binop-andeq1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* PR tree-optimization/111431 */
+
+int
+foo (int a)
+{
+ int b = a == 2;
+ return (a & b);
+}
+
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/binop-andeq2.c b/gcc/testsuite/gcc.dg/binop-andeq2.c
new file mode 100644
index 0000000..895262f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/binop-andeq2.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* PR tree-optimization/111431 */
+
+int
+foo (int a)
+{
+ int b = a == 1025;
+ return (a & b);
+}
+
+/* { dg-final { scan-tree-dump-not "return 0" "optimized" } } */
+/* { dg-final { scan-tree-dump-not " & " "optimized" } } */
+/* { dg-final { scan-tree-dump-times " == 1025;" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/binop-notand1a.c b/gcc/testsuite/gcc.dg/binop-notand1a.c
index c7e932b..d94685e 100644
--- a/gcc/testsuite/gcc.dg/binop-notand1a.c
+++ b/gcc/testsuite/gcc.dg/binop-notand1a.c
@@ -7,6 +7,4 @@ foo (char a, unsigned short b)
return (a & !a) | (b & !b);
}
-/* As long as comparisons aren't boolified and casts from boolean-types
- aren't preserved, the folding of X & !X to zero fails. */
-/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/binop-notand4a.c b/gcc/testsuite/gcc.dg/binop-notand4a.c
index dce6a5c..bd9c7cc 100644
--- a/gcc/testsuite/gcc.dg/binop-notand4a.c
+++ b/gcc/testsuite/gcc.dg/binop-notand4a.c
@@ -7,6 +7,4 @@ foo (unsigned char a, _Bool b)
return (!a & a) | (b & !b);
}
-/* As long as comparisons aren't boolified and casts from boolean-types
- aren't preserved, the folding of X & !X to zero fails. */
-/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/binop-notand7.c b/gcc/testsuite/gcc.dg/binop-notand7.c
new file mode 100644
index 0000000..c2bb6a0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/binop-notand7.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* PR tree-optimization/111431 */
+
+int
+foo (int a)
+{
+ int b = !a;
+ return (a & b);
+}
+
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/binop-notand7a.c b/gcc/testsuite/gcc.dg/binop-notand7a.c
new file mode 100644
index 0000000..dd50916
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/binop-notand7a.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* PR tree-optimization/111431 */
+
+unsigned
+foo (int a)
+{
+ int b = !a;
+ return (a & b);
+}
+
+/* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/bitint-37.c b/gcc/testsuite/gcc.dg/bitint-37.c
new file mode 100644
index 0000000..23a8f2d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/bitint-37.c
@@ -0,0 +1,11 @@
+/* PR middle-end/111338 */
+/* { dg-do compile { target bitint575 } } */
+/* { dg-options "-O1" } */
+
+_BitInt(575) e;
+
+_BitInt(575)
+foo (void)
+{
+ return e & 1;
+}
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c
new file mode 100644
index 0000000..333ef73
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-inline-events.c
@@ -0,0 +1,72 @@
+/* { dg-do compile } */
+/* { dg-options "-fdiagnostics-path-format=inline-events -fdiagnostics-show-caret -fdiagnostics-show-line-numbers" } */
+/* { dg-enable-nn-line-numbers "" } */
+
+extern void acquire_lock_a(void);
+extern void acquire_lock_b(void);
+
+void foo ()
+{
+ acquire_lock_a ();
+ acquire_lock_b ();
+}
+
+void bar ()
+{
+ acquire_lock_b ();
+ acquire_lock_a (); /* { dg-warning "deadlock due to inconsistent lock acquisition order" } */
+}
+
+/* { dg-begin-multiline-output "" }
+ NN | acquire_lock_a ();
+ | ^~~~~~~~~~~~~~~~~
+Thread: 'Thread 1'
+ 'foo': event 1
+ |
+ | NN | {
+ | | ^
+ | | |
+ | | (1) entering 'foo'
+ |
+ +--> 'foo': event 2
+ |
+ | NN | acquire_lock_a ();
+ | | ^~~~~~~~~~~~~~~~~
+ | | |
+ | | (2) lock a is now held by thread 1
+ |
+
+Thread: 'Thread 2'
+ 'bar': event 3
+ |
+ | NN | {
+ | | ^
+ | | |
+ | | (3) entering 'bar'
+ |
+ +--> 'bar': event 4
+ |
+ | NN | acquire_lock_b ();
+ | | ^~~~~~~~~~~~~~~~~
+ | | |
+ | | (4) lock b is now held by thread 2
+ |
+
+Thread: 'Thread 1'
+ 'foo': event 5
+ |
+ | NN | acquire_lock_b ();
+ | | ^~~~~~~~~~~~~~~~~
+ | | |
+ | | (5) deadlocked due to waiting for lock b in thread 1...
+ |
+
+Thread: 'Thread 2'
+ 'bar': event 6
+ |
+ | NN | acquire_lock_a ();
+ | | ^~~~~~~~~~~~~~~~~
+ | | |
+ | | (6) ...whilst waiting for lock a in thread 2
+ |
+ { dg-end-multiline-output "" } */
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c
new file mode 100644
index 0000000..727d1bb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-sarif.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-fdiagnostics-format=sarif-file" } */
+
+extern void acquire_lock_a(void);
+extern void acquire_lock_b(void);
+
+void foo ()
+{
+ acquire_lock_a ();
+ acquire_lock_b ();
+}
+
+void bar ()
+{
+ acquire_lock_b ();
+ acquire_lock_a ();
+}
+
+/* Verify that some JSON was written to a file with the expected name. */
+/* { dg-final { verify-sarif-file } } */
+
+/* We expect various properties.
+ The indentation here reflects the expected hierarchy, though these tests
+ don't check for that, merely the string fragments we expect.
+
+ { dg-final { scan-sarif-file {"version": "2.1.0"} } }
+ { dg-final { scan-sarif-file {"text": "deadlock due to inconsistent lock acquisition order"} } }
+ { dg-final { scan-sarif-file {"id": "Thread 1"} } }
+ { dg-final { scan-sarif-file {"executionOrder": 1} } }
+ { dg-final { scan-sarif-file {"executionOrder": 2} } }
+ { dg-final { scan-sarif-file {"executionOrder": 5} } }
+ { dg-final { scan-sarif-file {"id": "Thread 2"} } }
+ { dg-final { scan-sarif-file {"executionOrder": 3} } }
+ { dg-final { scan-sarif-file {"executionOrder": 4} } }
+ { dg-final { scan-sarif-file {"executionOrder": 6} } } */
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c
new file mode 100644
index 0000000..914918b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-paths-multithreaded-separate-events.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-fdiagnostics-path-format=separate-events" } */
+
+extern void acquire_lock_a(void);
+extern void acquire_lock_b(void);
+
+void foo ()
+{ /* { dg-message "\\(1\\) entering 'foo'" } */
+ acquire_lock_a (); /* { dg-message "\\(2\\) lock a is now held by thread 1" } */
+ acquire_lock_b (); /* { dg-message "\\(5\\) deadlocked due to waiting for lock b in thread 1\.\.\." } */
+}
+
+void bar ()
+{ /* { dg-message "\\(3\\) entering 'bar'" } */
+ acquire_lock_b (); /* { dg-message "\\(4\\) lock b is now held by thread 2" } */
+ acquire_lock_a (); /* { dg-warning "deadlock due to inconsistent lock acquisition order" } */
+ /* { dg-message "\\(6\\) \.\.\.whilst waiting for lock a in thread 2" "" { target *-*-* } .-1 } */
+}
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
index 8d97fe8..62558be 100644
--- a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
+++ b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_paths.c
@@ -192,7 +192,7 @@ struct event_location_t
/* If FUN's name matches FUNCNAME, write the function and its start location
into *OUT_ENTRY. */
-static void
+static bool
check_for_named_function (function *fun, const char *funcname,
event_location_t *out_entry)
{
@@ -200,9 +200,10 @@ check_for_named_function (function *fun, const char *funcname,
gcc_assert (funcname);
if (strcmp (IDENTIFIER_POINTER (DECL_NAME (fun->decl)), funcname))
- return;
+ return false;
*out_entry = event_location_t (fun, fun->function_start_locus);
+ return true;
}
@@ -215,12 +216,21 @@ class test_diagnostic_path : public simple_diagnostic_path
: simple_diagnostic_path (event_pp)
{
}
+ void add_event_2 (event_location_t evloc, int stack_depth,
+ const char *desc,
+ diagnostic_thread_id_t thread_id = 0)
+ {
+ gcc_assert (evloc.m_fun);
+ add_thread_event (thread_id, evloc.m_loc, evloc.m_fun->decl,
+ stack_depth, desc);
+ }
void add_entry (event_location_t evloc, int stack_depth,
- const char *funcname)
+ const char *funcname,
+ diagnostic_thread_id_t thread_id = 0)
{
gcc_assert (evloc.m_fun);
- add_event (evloc.m_loc, evloc.m_fun->decl, stack_depth,
- "entering %qs", funcname);
+ add_thread_event (thread_id, evloc.m_loc, evloc.m_fun->decl, stack_depth,
+ "entering %qs", funcname);
}
void add_call (event_location_t call_evloc, int caller_stack_depth,
@@ -422,12 +432,86 @@ example_3 ()
}
}
+/* Example 4: a multithreaded path. */
+
+static void
+example_4 ()
+{
+ gimple_stmt_iterator gsi;
+ basic_block bb;
+
+ event_location_t entry_to_foo;
+ event_location_t entry_to_bar;
+ event_location_t call_to_acquire_lock_a_in_foo;
+ event_location_t call_to_acquire_lock_b_in_foo;
+ event_location_t call_to_acquire_lock_a_in_bar;
+ event_location_t call_to_acquire_lock_b_in_bar;
+
+ cgraph_node *node;
+ FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (node)
+ {
+ function *fun = node->get_fun ();
+ FOR_EACH_BB_FN (bb, fun)
+ {
+ bool in_foo = check_for_named_function (fun, "foo",
+ &entry_to_foo);
+ bool in_bar = check_for_named_function (fun, "bar",
+ &entry_to_bar);
+ for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ {
+ gimple *stmt = gsi_stmt (gsi);
+ event_location_t *evloc = NULL;
+ gcall *call = NULL;
+ if (call = check_for_named_call (stmt, "acquire_lock_a", 0))
+ evloc = (in_foo
+ ? &call_to_acquire_lock_a_in_foo
+ : &call_to_acquire_lock_a_in_bar);
+ else if (call
+ = check_for_named_call (stmt, "acquire_lock_b", 0))
+ evloc = (in_foo
+ ? &call_to_acquire_lock_b_in_foo
+ : &call_to_acquire_lock_b_in_bar);
+ if (evloc)
+ evloc->set (call, fun);
+ }
+ }
+ }
+
+ if (call_to_acquire_lock_a_in_foo.m_fun)
+ {
+ auto_diagnostic_group d;
+
+ gcc_rich_location richloc (call_to_acquire_lock_a_in_bar.m_loc);
+ test_diagnostic_path path (global_dc->printer);
+ diagnostic_thread_id_t thread_1 = path.add_thread ("Thread 1");
+ diagnostic_thread_id_t thread_2 = path.add_thread ("Thread 2");
+ path.add_entry (entry_to_foo, 0, "foo", thread_1);
+ path.add_event_2 (call_to_acquire_lock_a_in_foo, 1,
+ "lock a is now held by thread 1", thread_1);
+ path.add_entry (entry_to_bar, 0, "bar", thread_2);
+ path.add_event_2 (call_to_acquire_lock_b_in_bar, 1,
+ "lock b is now held by thread 2", thread_2);
+ path.add_event_2 (call_to_acquire_lock_b_in_foo, 1,
+ "deadlocked due to waiting for lock b in thread 1...",
+ thread_1);
+ path.add_event_2 (call_to_acquire_lock_a_in_bar, 1,
+ "...whilst waiting for lock a in thread 2",
+ thread_2);
+ richloc.set_path (&path);
+
+ diagnostic_metadata m;
+ warning_meta (&richloc, m, 0,
+ "deadlock due to inconsistent lock acquisition order");
+ }
+}
+
unsigned int
pass_test_show_path::execute (function *)
{
example_1 ();
example_2 ();
example_3 ();
+ example_4 ();
return 0;
}
diff --git a/gcc/testsuite/gcc.dg/plugin/plugin.exp b/gcc/testsuite/gcc.dg/plugin/plugin.exp
index ed72912..f098a32 100644
--- a/gcc/testsuite/gcc.dg/plugin/plugin.exp
+++ b/gcc/testsuite/gcc.dg/plugin/plugin.exp
@@ -108,6 +108,9 @@ set plugin_test_list [list \
diagnostic-test-paths-3.c \
diagnostic-test-paths-4.c \
diagnostic-test-paths-5.c \
+ diagnostic-test-paths-multithreaded-inline-events.c \
+ diagnostic-test-paths-multithreaded-sarif.c \
+ diagnostic-test-paths-multithreaded-separate-events.c \
diagnostic-path-format-plain.c \
diagnostic-path-format-none.c \
diagnostic-path-format-separate-events.c \
diff --git a/gcc/testsuite/gcc.dg/pr111303.c b/gcc/testsuite/gcc.dg/pr111303.c
new file mode 100644
index 0000000..eaabe55
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr111303.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* Make sure no ICE. */
+unsigned char a;
+int b(int c) {
+ if (c >= 5000)
+ return c / 5;
+}
+void d() { b(a - 5); }
+int main() {}
diff --git a/gcc/testsuite/gcc.dg/pr111407.c b/gcc/testsuite/gcc.dg/pr111407.c
new file mode 100644
index 0000000..a171074
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr111407.c
@@ -0,0 +1,21 @@
+/* PR tree-optimization/111407*/
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+enum { SEND_TOFILE } __sigsetjmp();
+void fclose();
+void foldergets();
+void sendpart_stats(int *p1, int a1, int b1) {
+ int *a = p1;
+ fclose();
+ p1 = 0;
+ long t = b1;
+ if (__sigsetjmp()) {
+ {
+ long t1 = a1;
+ a1+=1;
+ fclose(a1*(long)t1);
+ }
+ }
+ if (p1)
+ fclose();
+}
diff --git a/gcc/testsuite/gcc.dg/pr21643.c b/gcc/testsuite/gcc.dg/pr21643.c
index 4e7f93d..42517b5 100644
--- a/gcc/testsuite/gcc.dg/pr21643.c
+++ b/gcc/testsuite/gcc.dg/pr21643.c
@@ -86,4 +86,8 @@ f9 (unsigned char c)
return 1;
}
-/* { dg-final { scan-tree-dump-times "Optimizing range tests c_\[0-9\]*.D. -.0, 31. and -.32, 32.\[\n\r\]* into" 6 "reassoc1" } } */
+/* Note with match being able to simplify this, optimizing range tests is no longer needed here. */
+/* Equivalence: _7 | _2 -> c_5(D) <= 32 */
+/* old test: dg-final scan-tree-dump-times "Optimizing range tests c_\[0-9\]*.D. -.0, 31. and -.32, 32.\[\n\r\]* into" 6 "reassoc1" */
+/* { dg-final { scan-tree-dump-times "Equivalence: _\[0-9\]+ \\\| _\[0-9\]+ -> c_\[0-9\]+.D. <= 32" 5 "reassoc1" } } */
+/* { dg-final { scan-tree-dump-times "Equivalence: _\[0-9\]+ \& _\[0-9\]+ -> c_\[0-9\]+.D. > 32" 1 "reassoc1" } } */
diff --git a/gcc/testsuite/gcc.dg/pr96708-negative.c b/gcc/testsuite/gcc.dg/pr96708-negative.c
index 91964d3..c9c1aa8 100644
--- a/gcc/testsuite/gcc.dg/pr96708-negative.c
+++ b/gcc/testsuite/gcc.dg/pr96708-negative.c
@@ -42,7 +42,7 @@ int main()
return 0;
}
-/* { dg-final { scan-tree-dump-times "MAX_EXPR" 2 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "MIN_EXPR" 2 "optimized" } } */
+/* Even though test[1-4] originally has MIN/MAX, those can be optimized away
+ into just comparing a and b arguments. */
/* { dg-final { scan-tree-dump-times "return 0;" 1 "optimized" } } */
/* { dg-final { scan-tree-dump-not { "return 1;" } "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/pr96708-positive.c b/gcc/testsuite/gcc.dg/pr96708-positive.c
index 65af853..12c5fed 100644
--- a/gcc/testsuite/gcc.dg/pr96708-positive.c
+++ b/gcc/testsuite/gcc.dg/pr96708-positive.c
@@ -42,6 +42,7 @@ int main()
return 0;
}
+/* Note main has one `return 0`. */
/* { dg-final { scan-tree-dump-times "return 0;" 3 "optimized" } } */
/* { dg-final { scan-tree-dump-times "return 1;" 2 "optimized" } } */
/* { dg-final { scan-tree-dump-not { "MAX_EXPR" } "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c b/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
new file mode 100644
index 0000000..ad07e9c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/rtl/aarch64/pr111411.c
@@ -0,0 +1,57 @@
+/* { dg-do compile { target aarch64*-*-* } } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O -fdisable-rtl-postreload -fpeephole2 -fno-schedule-fusion" } */
+
+extern int data[];
+
+void __RTL (startwith ("ira")) foo (void *ptr)
+{
+ (function "foo"
+ (param "ptr"
+ (DECL_RTL (reg/v:DI <0> [ ptr ]))
+ (DECL_RTL_INCOMING (reg/v:DI x0 [ ptr ]))
+ ) ;; param "ptr"
+ (insn-chain
+ (block 2
+ (edge-from entry (flags "FALLTHRU"))
+ (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
+ (insn 4 (set (reg:DI <0>) (reg:DI x0)))
+ (insn 5 (set (reg:DI <1>)
+ (plus:DI (reg:DI <0>) (const_int 768))))
+ (insn 6 (set (mem:SI (plus:DI (reg:DI <0>)
+ (const_int 508)) [1 &data+508 S4 A4])
+ (const_int 0)))
+ (insn 7 (set (mem:SI (plus:DI (reg:DI <1>)
+ (const_int -256)) [1 &data+512 S4 A4])
+ (const_int 0)))
+ (edge-to exit (flags "FALLTHRU"))
+ ) ;; block 2
+ ) ;; insn-chain
+ ) ;; function
+}
+
+void __RTL (startwith ("ira")) bar (void *ptr)
+{
+ (function "bar"
+ (param "ptr"
+ (DECL_RTL (reg/v:DI <0> [ ptr ]))
+ (DECL_RTL_INCOMING (reg/v:DI x0 [ ptr ]))
+ ) ;; param "ptr"
+ (insn-chain
+ (block 2
+ (edge-from entry (flags "FALLTHRU"))
+ (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
+ (insn 4 (set (reg:DI <0>) (reg:DI x0)))
+ (insn 5 (set (reg:DI <1>)
+ (plus:DI (reg:DI <0>) (const_int 768))))
+ (insn 6 (set (mem:SI (plus:DI (reg:DI <1>)
+ (const_int -256)) [1 &data+512 S4 A4])
+ (const_int 0)))
+ (insn 7 (set (mem:SI (plus:DI (reg:DI <0>)
+ (const_int 508)) [1 &data+508 S4 A4])
+ (const_int 0)))
+ (edge-to exit (flags "FALLTHRU"))
+ ) ;; block 2
+ ) ;; insn-chain
+ ) ;; function
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr111387.c b/gcc/testsuite/gcc.dg/torture/pr111387.c
new file mode 100644
index 0000000..e14eeef
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr111387.c
@@ -0,0 +1,34 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-ftree-vectorize -fno-vect-cost-model" } */
+
+struct {
+ unsigned a;
+ unsigned b;
+} c;
+int d, e, f, g, h;
+int main()
+{
+ if (c.b && g && g > 7)
+ goto i;
+ j:
+ if (c.a) {
+ int k = 0;
+ unsigned l = c.b;
+ if (0) {
+ m:
+ k = l = c.b;
+ }
+ c.a = k;
+ c.b = l;
+ }
+ if (0) {
+ i:
+ goto m;
+ }
+ if (d)
+ goto j;
+ for (f = 5; f; f--)
+ if (h)
+ e = 0;
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c b/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
index b9f8fd2..aa9f68b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
@@ -29,8 +29,4 @@ void test55 (int x, int y)
/* There should be not link_error calls, if there is any the
optimization has failed */
-/* ??? Ug. This one may or may not fail based on how fold decides
- that the && should be emitted (based on BRANCH_COST). Fix this
- by teaching dom to look through && and register all components
- as true. */
-/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "alpha*-*-* arm*-*-* aarch64*-*-* powerpc*-*-* cris-*-* hppa*-*-* i?86-*-* mmix-*-* mips*-*-* m68k*-*-* moxie-*-* nds32*-*-* s390*-*-* sh*-*-* sparc*-*-* visium-*-* x86_64-*-* riscv*-*-* or1k*-*-* msp430-*-* pru*-*-* nvptx*-*-*" } } } } */
+/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/bool-13.c b/gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
index 438f15a..de8c99a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/bool-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-original -fdump-tree-phiopt1 -fdump-tree-forwprop2" } */
+/* { dg-options "-O1 -fdump-tree-optimized -fdump-tree-original -fdump-tree-forwprop1 -fdump-tree-forwprop2" } */
#define bool _Bool
int maxbool(bool ab, bool bb)
{
@@ -22,15 +22,10 @@ int minbool(bool ab, bool bb)
/* { dg-final { scan-tree-dump-times "MIN_EXPR" 1 "original" } } */
/* { dg-final { scan-tree-dump-times "if " 0 "original" } } */
-/* PHI-OPT1 should have kept it as min/max. */
-/* { dg-final { scan-tree-dump-times "MAX_EXPR" 1 "phiopt1" } } */
-/* { dg-final { scan-tree-dump-times "MIN_EXPR" 1 "phiopt1" } } */
-/* { dg-final { scan-tree-dump-times "if " 0 "phiopt1" } } */
-
-/* Forwprop2 (after ccp) will convert it into &\| */
-/* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "forwprop2" } } */
-/* { dg-final { scan-tree-dump-times "MIN_EXPR" 0 "forwprop2" } } */
-/* { dg-final { scan-tree-dump-times "if " 0 "forwprop2" } } */
+/* Forwprop1 will convert it into &\| as we can detect that the arguments are one_zero. */
+/* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "forwprop1" } } */
+/* { dg-final { scan-tree-dump-times "MIN_EXPR" 0 "forwprop1" } } */
+/* { dg-final { scan-tree-dump-times "if " 0 "forwprop1" } } */
/* By optimize there should be no min/max nor if */
/* { dg-final { scan-tree-dump-times "MAX_EXPR" 0 "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cmpbit-5.c b/gcc/testsuite/gcc.dg/tree-ssa/cmpbit-5.c
new file mode 100644
index 0000000..d81a129
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cmpbit-5.c
@@ -0,0 +1,51 @@
+/* PR tree-optimization/106164 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-forwprop1-details" } */
+
+
+int f(int a)
+{
+ int c = a != 2;
+ int d = a >= 2;
+ return c & d;
+}
+int g(int b)
+{
+ int c = b != -1;
+ int d = b <= -1;
+ return c & d;
+}
+
+
+int g_(int e)
+{
+ int c = e != -2;
+ int d = e <= -2;
+ return c & d;
+}
+
+int f1(int x)
+{
+ int c = x == 2;
+ int d = x <= 1;
+ return c | d;
+}
+int g1(int y)
+{
+ int c = y == -1;
+ int d = y > -1;
+ return c | d;
+}
+int g1_(int z)
+{
+ int c = z == -2;
+ int d = z >= -1;
+ return c | d;
+}
+
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = a_\[0-9\]+.D. > 2" "forwprop1" } } */
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = b_\[0-9\]+.D. < -1" "forwprop1" } } */
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = e_\[0-9\]+.D. < -2" "forwprop1" } } */
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = x_\[0-9\]+.D. <= 2" "forwprop1" } } */
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = y_\[0-9\]+.D. >= -1" "forwprop1" } } */
+/* { dg-final { scan-tree-dump "gimple_simplified to _\[0-9\]+ = z_\[0-9\]+.D. >= -2" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cmpeq-4.c b/gcc/testsuite/gcc.dg/tree-ssa/cmpeq-4.c
new file mode 100644
index 0000000..868d80f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cmpeq-4.c
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-original" } */
+/* PR tree-optimization/107881 */
+
+_Bool ltgt_eq(int a, int b)
+{
+ _Bool c = a < b;
+ _Bool d = a > b;
+ return c == d; // a == b
+}
+/* { dg-final { scan-tree-dump "a_\[0-9\]+.D. == b_\[0-9\]+.D.|b_\[0-9\]+.D. == a_\[0-9\]+.D." "optimized" } } */
+
+_Bool lteq_eq(int x, int y)
+{
+ _Bool c = x < y;
+ _Bool d = x == y;
+ return c == d; // x > y
+}
+/* { dg-final { scan-tree-dump "x_\[0-9\]+.D. > y_\[0-9\]+.D.|y_\[0-9\]+.D. < x_\[0-9\]+.D." "optimized" } } */
+
+_Bool ltne_eq(int z, int w)
+{
+ _Bool c = z < w;
+ _Bool d = z != w;
+ return c == d; // z <= w
+}
+/* { dg-final { scan-tree-dump "z_\[0-9\]+.D. <= w_\[0-9\]+.D.|w_\[0-9\]+.D. >= y_\[0-9\]+.D." "optimized" } } */
+
+_Bool lege_eq(int i, int j)
+{
+ _Bool c = i <= j;
+ _Bool d = i >= j;
+ return c == d; // i == j
+}
+/* { dg-final { scan-tree-dump "i_\[0-9\]+.D. == j_\[0-9\]+.D.|j_\[0-9\]+.D. == i_\[0-9\]+.D." "optimized" } } */
+
+_Bool leeq_eq(int k, int l)
+{
+ _Bool c = k <= l;
+ _Bool d = k == l;
+ return c == d; // k >= l
+}
+/* { dg-final { scan-tree-dump "k_\[0-9\]+.D. >= l_\[0-9\]+.D.|l_\[0-9\]+.D. <= k_\[0-9\]+.D." "optimized" } } */
+
+_Bool lene_eq(int m, int n)
+{
+ _Bool c = m <= n;
+ _Bool d = m != n;
+ return c == d; // m < n
+}
+/* { dg-final { scan-tree-dump "m_\[0-9\]+.D. < n_\[0-9\]+.D.|n_\[0-9\]+.D. > m_\[0-9\]+.D." "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c b/gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c
new file mode 100644
index 0000000..8de2d9d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/cmpxor-1.c
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+/* PR tree-optimization/107881 */
+
+_Bool ltgtxor(int a, int b)
+{
+ _Bool c = a < b;
+ _Bool d = a > b;
+ return c ^ d; // a != b
+}
+/* { dg-final { scan-tree-dump "a_\[0-9\]+.D. != b_\[0-9\]+.D.|b_\[0-9\]+.D. != a_\[0-9\]+.D." "optimized" } } */
+
+_Bool lteqxor(int x, int y)
+{
+ _Bool c = x < y;
+ _Bool d = x == y;
+ return c ^ d; // x <= y (basically | here)
+}
+/* { dg-final { scan-tree-dump "x_\[0-9\]+.D. <= y_\[0-9\]+.D.|y_\[0-9\]+.D. >= x_\[0-9\]+.D." "optimized" } } */
+
+_Bool ltnexor(int z, int w)
+{
+ _Bool c = z < w;
+ _Bool d = z != w;
+ return c ^ d; // z > w
+}
+/* { dg-final { scan-tree-dump "z_\[0-9\]+.D. > w_\[0-9\]+.D.|w_\[0-9\]+.D. < y_\[0-9\]+.D." "optimized" } } */
+
+_Bool legexor(int i, int j)
+{
+ _Bool c = i <= j;
+ _Bool d = i >= j;
+ return c ^ d; // i != j
+}
+/* { dg-final { scan-tree-dump "i_\[0-9\]+.D. != j_\[0-9\]+.D.|j_\[0-9\]+.D. != i_\[0-9\]+.D." "optimized" } } */
+
+_Bool leeqxor(int k, int l)
+{
+ _Bool c = k <= l;
+ _Bool d = k == l;
+ return c ^ d; // k < l
+}
+/* { dg-final { scan-tree-dump "k_\[0-9\]+.D. < l_\[0-9\]+.D.|l_\[0-9\]+.D. > k_\[0-9\]+.D." "optimized" } } */
+
+_Bool lenexor(int m, int n)
+{
+ _Bool c = m <= n;
+ _Bool d = m != n;
+ return c ^ d; // m >= n
+}
+/* { dg-final { scan-tree-dump "m_\[0-9\]+.D. >= n_\[0-9\]+.D.|n_\[0-9\]+.D. <= m_\[0-9\]+.D." "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/evrp10.c b/gcc/testsuite/gcc.dg/tree-ssa/evrp10.c
index 6ca00e4..776c80c 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/evrp10.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/evrp10.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-evrp" }*/
+/* { dg-options "-O2 -fdump-tree-evrp -fno-tree-forwprop" }*/
typedef __INT32_TYPE__ int32_t;
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/evrp6.c b/gcc/testsuite/gcc.dg/tree-ssa/evrp6.c
index aaeec68..0f9561b 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/evrp6.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/evrp6.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-evrp-details" } */
+/* { dg-options "-O2 -fdump-tree-evrp-details -fdump-tree-mergephi1" } */
extern void abort (void);
@@ -18,4 +18,5 @@ foo (int k, int j)
return j;
}
-/* { dg-final { scan-tree-dump "\\\[12, \\+INF" "evrp" } } */
+/* { dg-final { scan-tree-dump "\\\[11, \\+INF" "evrp" } } */
+/* { dg-final { scan-tree-dump-not "abort" "mergephi1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c
index edf8026..40cc863 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-31.c
@@ -9,6 +9,5 @@ int foo (int x)
return w - z; /* becomes 0 */
}
-/* Only z = x + 1 is retained. */
-/* { dg-final { scan-tree-dump-times " = " 1 "forwprop1" } } */
+/* { dg-final { scan-tree-dump-times " = " 0 "forwprop1" } } */
/* { dg-final { scan-tree-dump "return 0;" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c b/gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c
new file mode 100644
index 0000000..e4b7412
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/minmax-26.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-original" } */
+/* PR tree-optimization/111348 */
+
+int test1(int a, int b, int c)
+{
+ return (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
+}
+
+
+int test1_(int a, int b, int c)
+{
+ return (b < a) ? ((a > c) ? a : c) : ((b > c) ? b : c);
+}
+
+/* test1 and test1_ should be able to optimize to `MAX_EXPR <MAX_EXPR <a, b>, c>;` during fold. */
+/* { dg-final { scan-tree-dump-times "MAX_EXPR <MAX_EXPR <a, b>, c>" 2 "original" } } */
+/* { dg-final { scan-tree-dump-not "b > a" "original" } } */
+/* { dg-final { scan-tree-dump-not "a > b" "original" } } */
+/* { dg-final { scan-tree-dump-times "MAX_EXPR " 4 "optimized" } } */
+/* { dg-final { scan-tree-dump-not "if " "optimized" } } */
+
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-2.c b/gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-2.c
new file mode 100644
index 0000000..f64a925
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/minmaxcmp-2.c
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-original" } */
+/* PR tree-optimization/111364 */
+
+#define min1(a, b) ((a) < (b) ? (a) : (b))
+#define max1(a, b) ((a) > (b) ? (a) : (b))
+
+int minlt(int a, int b)
+{
+ return min1(a, b) < a; // b < a or a > b
+}
+/* { dg-final { scan-tree-dump "return a > b;|return b < a;" "original" } } */
+
+int minge(int c, int d)
+{
+ return min1(c, d) >= c; // d >= c or c <= d
+}
+/* { dg-final { scan-tree-dump "return c <= d;|return d <= c;" "original" } } */
+
+int maxgt(int e, int f)
+{
+ return max1(e, f) > e; // e > f or f < e
+}
+/* { dg-final { scan-tree-dump "return e < f;|return f > e;" "original" } } */
+
+int maxle(int x, int y)
+{
+ return max1(x, y) <= x; // y <= x or x >= y
+}
+/* { dg-final { scan-tree-dump "return x >= y;|return y <= x;" "original" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c b/gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c
index 7b23ca8..61b8940 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/neg-cast-3.c
@@ -10,6 +10,4 @@ unsigned f(_Bool a)
}
/* There should be no cast to int at all. */
-/* Forwprop1 does not remove all of the statements. */
-/* { dg-final { scan-tree-dump-not "\\\(int\\\)" "forwprop1" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-not "\\\(int\\\)" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "\\\(int\\\)" "forwprop1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-35.c b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-35.c
new file mode 100644
index 0000000..c52c64c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-35.c
@@ -0,0 +1,13 @@
+/* PR tree-optimization/106164 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fdump-tree-phiopt2" } */
+
+_Bool f2(int a)
+{
+ if (a != 2)
+ return a > 1;
+ return 0;
+}
+/* phiopt2 should be able to optimize this to `a > 2` via match and simplify */
+/* { dg-final { scan-tree-dump "_\[0-9\]+ = a_\[0-9\]+.D. > 2" "phiopt2" } } */
+/* { dg-final { scan-tree-dump-not "a_\[0-9\]+.D. != 2" "phiopt2" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
index 1e09f89..6240d1c 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-Ofast -fdump-tree-dom2" } */
+/* { dg-options "-Ofast -fdump-tree-threadfull1-stats" } */
void g (int);
void g1 (int);
@@ -37,4 +37,4 @@ f (long a, long b, long c, long d, int x)
g (c + d);
}
-/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */
+/* { dg-final { scan-tree-dump "Jumps threaded: 2" "threadfull1" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111294.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111294.c
new file mode 100644
index 0000000..9ad912b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr111294.c
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+/* { dg-options "-Os -fdump-tree-optimized" } */
+
+void foo(void);
+static short a;
+static int b, c, d;
+static int *e, *f = &d;
+static int **g = &e;
+static unsigned char h;
+static short(i)(short j, int k) { return j > k ?: j; }
+static char l() {
+ if (a) return b;
+ return c;
+}
+int main() {
+ b = 0;
+ for (; b < 5; ++b)
+ ;
+ h = l();
+ if (a ^ 3 >= i(h, 11))
+ a = 0;
+ else {
+ *g = f;
+ if (e == &d & b) {
+ __builtin_unreachable();
+ } else
+ foo();
+ ;
+ }
+}
+
+/* { dg-final { scan-tree-dump-not "foo" "optimized" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr111303.c b/gcc/testsuite/gcc.dg/tree-ssa/pr111303.c
new file mode 100644
index 0000000..b703fe4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr111303.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-optimized" } */
+
+typedef unsigned int INT;
+
+INT
+foo (INT x, INT y)
+{
+ if (x > 100 || y > 100)
+ return x;
+ return (x * y) / y;
+}
+
+/* { dg-final { scan-tree-dump-times "return x_..D." 1 "optimized"} } */
+/* { dg-final { scan-tree-dump-times " / " 0 "optimized"} } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c b/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
index 0f66aae..26c81d9 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-Ofast -fdisable-tree-cunrolli -fdump-tree-threadfull1-details" } */
+/* { dg-options "-Ofast -fdump-tree-ethread-details" } */
typedef unsigned short u16;
typedef unsigned char u8;
@@ -56,8 +56,4 @@ main (int argc, char argv[])
return crc;
}
-/* We used to have no threads in vrp-thread1 because all the attempted
- ones would cross loops. Now we get 30+ threads before VRP because
- of loop unrolling. A better option is to disable unrolling and
- test for the original 4 threads that this test was testing. */
-/* { dg-final { scan-tree-dump-times "Registering jump thread" 4 "threadfull1" } } */
+/* { dg-final { scan-tree-dump-times "Registering jump thread" 2 "ethread" } } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c
index 0e0f4c0..a78e444 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_2.c
@@ -1,6 +1,8 @@
/* PR tree-optimization/61839. */
/* { dg-do compile } */
-/* { dg-options "-O2 -fdump-tree-evrp" } */
+/* Disable jump threading, we want to avoid separating the division/modulo
+ by zero paths - we'd isolate those only later. */
+/* { dg-options "-O2 -fno-thread-jumps -fdump-tree-evrp" } */
/* { dg-require-effective-target int32plus } */
__attribute__ ((noinline))
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
index fd6c867..13b9ba4 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-18.c
@@ -198,7 +198,9 @@ compute_on_bytes (uint8_t *in_data, int in_len, uint8_t *out_data, int out_len)
exits after gimple loop optimizations, which generates instructions executed
each iteration in loop, but the results are used outside of loop:
With -m64,
- "Sinking _367 = (uint8_t *) _320;
+ "Sinking op_230 = op_244 + 2;
+ from bb 63 to bb 94
+ Sinking _367 = (uint8_t *) _320;
from bb 31 to bb 90
Sinking _320 = _321 + ivtmp.25_326;
from bb 31 to bb 90
@@ -213,4 +215,4 @@ compute_on_bytes (uint8_t *in_data, int in_len, uint8_t *out_data, int out_len)
base+index addressing modes, so the ip[len] address computation can't be
made from the IV computation above. */
- /* { dg-final { scan-tree-dump-times "Sunk statements: 4" 1 "sink2" { target lp64 xfail { riscv64-*-* } } } } */
+ /* { dg-final { scan-tree-dump-times "Sunk statements: 5" 1 "sink2" { target lp64 xfail { riscv64-*-* } } } } */
diff --git a/gcc/testsuite/gcc.dg/uninit-pr111397.c b/gcc/testsuite/gcc.dg/uninit-pr111397.c
new file mode 100644
index 0000000..ec12f9d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/uninit-pr111397.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+int globalVar = 1;
+int __attribute__ ((__returns_twice__)) test_setjmpex(void *context);
+
+void testfn()
+{
+ int localVar = globalVar;
+ while (!localVar) {
+ test_setjmpex(__builtin_frame_address (0)); // { dg-bogus "uninitialized" }
+ if (globalVar)
+ break;
+ }
+}
diff --git a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
index 0f508fa..3c83d50 100644
--- a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
+++ b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c
@@ -17,7 +17,7 @@ int foo (int n, int l, int m, int r)
if (l > 100)
if ( (n <= 9) && (m < 100) && (r < 19) )
- blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail powerpc*-*-* cris-*-* riscv*-*-* } } */
+ blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail *-*-* } } */
if ( (n <= 8) && (m < 99) && (r < 19) )
blah(v); /* { dg-bogus "uninitialized" "pr101674" { xfail mmix-*-* } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
new file mode 100644
index 0000000..fd9f38b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul-mixed-1.c
@@ -0,0 +1,50 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n)
+{
+ for (int i = 0; i < n; i++)
+ a[i] = d5[i] + b[i];
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]
+ + a[i] * a2[i] * a3[i] * a4[i] * a5[i] * c[i] * c2[i] * c3[i]
+ * c4[i] * c5[i] * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler {e32,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
new file mode 100644
index 0000000..6c414bc
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-1.c
@@ -0,0 +1,91 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int32_t *__restrict e,
+ int32_t *__restrict e2,
+ int32_t *__restrict e3,
+ int32_t *__restrict e4,
+ int32_t *__restrict e5,
+ int32_t *__restrict f,
+ int32_t *__restrict f2,
+ int32_t *__restrict f3,
+ int32_t *__restrict f4,
+ int32_t *__restrict f5,
+ int32_t *__restrict g,
+ int32_t *__restrict g2,
+ int32_t *__restrict g3,
+ int32_t *__restrict g4,
+ int32_t *__restrict g5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+
+ e[i] = c2[i] + c2[i];
+ e2[i] = c2[i] + d2[i];
+ e3[i] = d3[i] + d3[i];
+ e4[i] = c4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ a5[i] = a[i] + a4[i];
+
+ f[i] = e2[i] + c2[i];
+ f2[i] = e2[i] + d2[i];
+ f3[i] = e3[i] + d3[i];
+ f4[i] = e4[i] + a4[i];
+ f5[i] = e[i] + a4[i];
+ f5[i] = e5[i] + a4[i];
+
+ g[i] = f2[i] + c2[i];
+ g2[i] = f2[i] + d2[i];
+ g3[i] = f3[i] + d3[i];
+ g4[i] = f4[i] + a4[i];
+ g5[i] = f[i] + a4[i];
+ g5[i] = f5[i] + a4[i];
+
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i]
+ * f[i] * f2[i] * f3[i] * f4[i] * f5[i]
+ * g[i] * g2[i] * g3[i] * g4[i] * g5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
new file mode 100644
index 0000000..b77f3ff
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-2.c
@@ -0,0 +1,63 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fno-schedule-insns -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int32_t *__restrict e,
+ int32_t *__restrict e2,
+ int32_t *__restrict e3,
+ int32_t *__restrict e4,
+ int32_t *__restrict e5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ e[i] = a2[i] + c2[i];
+ e2[i] = d2[i] + a2[i];
+ e3[i] = d3[i] + a3[i];
+ e4[i] = d4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i];
+ }
+}
+
+/* FIXME: Choosing LMUL = 1 is not the optimal since it can be LMUL = 2 if we apply instruction scheduler. */
+/* { dg-final { scan-assembler {e32,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c
new file mode 100644
index 0000000..164930c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-3.c
@@ -0,0 +1,91 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int8_t *__restrict c,
+ int8_t *__restrict a2, int8_t *__restrict b2, int8_t *__restrict c2,
+ int8_t *__restrict a3, int8_t *__restrict b3, int8_t *__restrict c3,
+ int8_t *__restrict a4, int8_t *__restrict b4, int8_t *__restrict c4,
+ int8_t *__restrict a5, int8_t *__restrict b5, int8_t *__restrict c5,
+ int8_t *__restrict d,
+ int8_t *__restrict d2,
+ int8_t *__restrict d3,
+ int8_t *__restrict d4,
+ int8_t *__restrict d5,
+ int8_t *__restrict e,
+ int8_t *__restrict e2,
+ int8_t *__restrict e3,
+ int8_t *__restrict e4,
+ int8_t *__restrict e5,
+ int8_t *__restrict f,
+ int8_t *__restrict f2,
+ int8_t *__restrict f3,
+ int8_t *__restrict f4,
+ int8_t *__restrict f5,
+ int8_t *__restrict g,
+ int8_t *__restrict g2,
+ int8_t *__restrict g3,
+ int8_t *__restrict g4,
+ int8_t *__restrict g5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+
+ e[i] = c2[i] + c2[i];
+ e2[i] = c2[i] + d2[i];
+ e3[i] = d3[i] + d3[i];
+ e4[i] = c4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ a5[i] = a[i] + a4[i];
+
+ f[i] = e2[i] + c2[i];
+ f2[i] = e2[i] + d2[i];
+ f3[i] = e3[i] + d3[i];
+ f4[i] = e4[i] + a4[i];
+ f5[i] = e[i] + a4[i];
+ f5[i] = e5[i] + a4[i];
+
+ g[i] = f2[i] + c2[i];
+ g2[i] = f2[i] + d2[i];
+ g3[i] = f3[i] + d3[i];
+ g4[i] = f4[i] + a4[i];
+ g5[i] = f[i] + a4[i];
+ g5[i] = f5[i] + a4[i];
+
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i]
+ * f[i] * f2[i] * f3[i] * f4[i] * f5[i]
+ * g[i] * g2[i] * g3[i] * g4[i] * g5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c
new file mode 100644
index 0000000..8d80fbf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-4.c
@@ -0,0 +1,121 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int32_t *__restrict e,
+ int32_t *__restrict e2,
+ int32_t *__restrict e3,
+ int32_t *__restrict e4,
+ int32_t *__restrict e5,
+ int32_t *__restrict f,
+ int32_t *__restrict f2,
+ int32_t *__restrict f3,
+ int32_t *__restrict f4,
+ int32_t *__restrict f5,
+ int32_t *__restrict g,
+ int32_t *__restrict g2,
+ int32_t *__restrict g3,
+ int32_t *__restrict g4,
+ int32_t *__restrict g5,
+
+ int32_t *__restrict gg,
+ int32_t *__restrict gg2,
+ int32_t *__restrict gg3,
+ int32_t *__restrict gg4,
+ int32_t *__restrict gg5,
+
+ int32_t *__restrict ggg,
+ int32_t *__restrict ggg2,
+ int32_t *__restrict ggg3,
+ int32_t *__restrict ggg4,
+ int32_t *__restrict ggg5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+
+ e[i] = c2[i] + c2[i];
+ e2[i] = c2[i] + d2[i];
+ e3[i] = d3[i] + d3[i];
+ e4[i] = c4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ a5[i] = a[i] + a4[i];
+
+ f[i] = e2[i] + c2[i];
+ f2[i] = e2[i] + d2[i];
+ f3[i] = e3[i] + d3[i];
+ f4[i] = e4[i] + a4[i];
+ f5[i] = e[i] + a4[i];
+ f5[i] = e5[i] + a4[i];
+
+ g[i] = f2[i] + c2[i];
+ g2[i] = f2[i] + d2[i];
+ g3[i] = f3[i] + d3[i];
+ g4[i] = f4[i] + a4[i];
+ g5[i] = f[i] + a4[i];
+ g5[i] = f5[i] + a4[i];
+
+
+ gg[i] = f2[i] + c2[i];
+ gg2[i] = f2[i] + d2[i];
+ gg3[i] = f3[i] + d3[i];
+ gg4[i] = f4[i] + a4[i];
+ gg5[i] = f[i] + a4[i];
+ gg5[i] = f5[i] + a4[i];
+
+
+ ggg[i] = f2[i] + c2[i];
+ ggg2[i] = f2[i] + d2[i];
+ ggg3[i] = f3[i] + d3[i];
+ ggg4[i] = f4[i] + a4[i];
+ ggg5[i] = f[i] + a4[i];
+ ggg5[i] = f5[i] + a4[i];
+
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i]
+ * f[i] * f2[i] * f3[i] * f4[i] * f5[i]
+ * g[i] * g2[i] * g3[i] * g4[i] * g5[i]
+ * gg[i] * gg2[i] * gg3[i] * gg4[i] * gg5[i]
+ * ggg[i] * ggg2[i] * ggg3[i] * ggg4[i] * ggg5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c
new file mode 100644
index 0000000..7b4014d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-5.c
@@ -0,0 +1,149 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int32_t *__restrict e,
+ int32_t *__restrict e2,
+ int32_t *__restrict e3,
+ int32_t *__restrict e4,
+ int32_t *__restrict e5,
+ int32_t *__restrict f,
+ int32_t *__restrict f2,
+ int32_t *__restrict f3,
+ int32_t *__restrict f4,
+ int32_t *__restrict f5,
+ int32_t *__restrict g,
+ int32_t *__restrict g2,
+ int32_t *__restrict g3,
+ int32_t *__restrict g4,
+ int32_t *__restrict g5,
+
+ int32_t *__restrict gg,
+ int32_t *__restrict gg2,
+ int32_t *__restrict gg3,
+ int32_t *__restrict gg4,
+ int32_t *__restrict gg5,
+
+ int32_t *__restrict ggg,
+ int32_t *__restrict ggg2,
+ int32_t *__restrict ggg3,
+ int32_t *__restrict ggg4,
+ int32_t *__restrict ggg5,
+
+ int32_t *__restrict gggg,
+ int32_t *__restrict gggg2,
+ int32_t *__restrict gggg3,
+ int32_t *__restrict gggg4,
+ int32_t *__restrict gggg5,
+
+ int32_t *__restrict ggggg,
+ int32_t *__restrict ggggg2,
+ int32_t *__restrict ggggg3,
+ int32_t *__restrict ggggg4,
+ int32_t *__restrict ggggg5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+
+ e[i] = c2[i] + c2[i];
+ e2[i] = c2[i] + d2[i];
+ e3[i] = d3[i] + d3[i];
+ e4[i] = c4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ a5[i] = a[i] + a4[i];
+
+ f[i] = e2[i] + c2[i];
+ f2[i] = e2[i] + d2[i];
+ f3[i] = e3[i] + d3[i];
+ f4[i] = e4[i] + a4[i];
+ f5[i] = e[i] + a4[i];
+ f5[i] = e5[i] + a4[i];
+
+ g[i] = f2[i] + c2[i];
+ g2[i] = f2[i] + d2[i];
+ g3[i] = f3[i] + d3[i];
+ g4[i] = f4[i] + a4[i];
+ g5[i] = f[i] + a4[i];
+ g5[i] = f5[i] + a4[i];
+
+
+ gg[i] = f2[i] + c2[i];
+ gg2[i] = f2[i] + d2[i];
+ gg3[i] = f3[i] + d3[i];
+ gg4[i] = f4[i] + a4[i];
+ gg5[i] = f[i] + a4[i];
+ gg5[i] = f5[i] + a4[i];
+
+
+ ggg[i] = f2[i] + c2[i];
+ ggg2[i] = f2[i] + d2[i];
+ ggg3[i] = f3[i] + d3[i];
+ ggg4[i] = f4[i] + a4[i];
+ ggg5[i] = f[i] + a4[i];
+ ggg5[i] = f5[i] + a4[i];
+
+ gggg[i] = f2[i] + c2[i];
+ gggg2[i] = f2[i] + d2[i];
+ gggg3[i] = f3[i] + d3[i];
+ gggg4[i] = f4[i] + a4[i];
+ gggg5[i] = f[i] + a4[i];
+ gggg5[i] = f5[i] + a4[i];
+
+ ggggg[i] = f2[i] + c2[i];
+ ggggg2[i] = f2[i] + d2[i];
+ ggggg3[i] = f3[i] + d3[i];
+ ggggg4[i] = f4[i] + a4[i];
+ ggggg5[i] = f[i] + a4[i];
+ ggggg5[i] = f5[i] + a4[i];
+
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i]
+ * f[i] * f2[i] * f3[i] * f4[i] * f5[i]
+ * g[i] * g2[i] * g3[i] * g4[i] * g5[i]
+ * gg[i] * gg2[i] * gg3[i] * gg4[i] * gg5[i]
+ * ggg[i] * ggg2[i] * ggg3[i] * ggg4[i] * ggg5[i]
+ * gggg[i] * gggg2[i] * gggg3[i] * gggg4[i] * gggg5[i]
+ * ggggg[i] * ggggg2[i] * ggggg3[i] * ggggg4[i] * ggggg5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c
new file mode 100644
index 0000000..51d05f2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-6.c
@@ -0,0 +1,150 @@
+
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int8_t *__restrict c,
+ int8_t *__restrict a2, int8_t *__restrict b2, int8_t *__restrict c2,
+ int8_t *__restrict a3, int8_t *__restrict b3, int8_t *__restrict c3,
+ int8_t *__restrict a4, int8_t *__restrict b4, int8_t *__restrict c4,
+ int8_t *__restrict a5, int8_t *__restrict b5, int8_t *__restrict c5,
+ int8_t *__restrict d,
+ int8_t *__restrict d2,
+ int8_t *__restrict d3,
+ int8_t *__restrict d4,
+ int8_t *__restrict d5,
+ int8_t *__restrict e,
+ int8_t *__restrict e2,
+ int8_t *__restrict e3,
+ int8_t *__restrict e4,
+ int8_t *__restrict e5,
+ int8_t *__restrict f,
+ int8_t *__restrict f2,
+ int8_t *__restrict f3,
+ int8_t *__restrict f4,
+ int8_t *__restrict f5,
+ int8_t *__restrict g,
+ int8_t *__restrict g2,
+ int8_t *__restrict g3,
+ int8_t *__restrict g4,
+ int8_t *__restrict g5,
+
+ int8_t *__restrict gg,
+ int8_t *__restrict gg2,
+ int8_t *__restrict gg3,
+ int8_t *__restrict gg4,
+ int8_t *__restrict gg5,
+
+ int8_t *__restrict ggg,
+ int8_t *__restrict ggg2,
+ int8_t *__restrict ggg3,
+ int8_t *__restrict ggg4,
+ int8_t *__restrict ggg5,
+
+ int8_t *__restrict gggg,
+ int8_t *__restrict gggg2,
+ int8_t *__restrict gggg3,
+ int8_t *__restrict gggg4,
+ int8_t *__restrict gggg5,
+
+ int8_t *__restrict ggggg,
+ int8_t *__restrict ggggg2,
+ int8_t *__restrict ggggg3,
+ int8_t *__restrict ggggg4,
+ int8_t *__restrict ggggg5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+
+ e[i] = c2[i] + c2[i];
+ e2[i] = c2[i] + d2[i];
+ e3[i] = d3[i] + d3[i];
+ e4[i] = c4[i] + a4[i];
+ e5[i] = a[i] + a4[i];
+ a5[i] = a[i] + a4[i];
+
+ f[i] = e2[i] + c2[i];
+ f2[i] = e2[i] + d2[i];
+ f3[i] = e3[i] + d3[i];
+ f4[i] = e4[i] + a4[i];
+ f5[i] = e[i] + a4[i];
+ f5[i] = e5[i] + a4[i];
+
+ g[i] = f2[i] + c2[i];
+ g2[i] = f2[i] + d2[i];
+ g3[i] = f3[i] + d3[i];
+ g4[i] = f4[i] + a4[i];
+ g5[i] = f[i] + a4[i];
+ g5[i] = f5[i] + a4[i];
+
+
+ gg[i] = f2[i] + c2[i];
+ gg2[i] = f2[i] + d2[i];
+ gg3[i] = f3[i] + d3[i];
+ gg4[i] = f4[i] + a4[i];
+ gg5[i] = f[i] + a4[i];
+ gg5[i] = f5[i] + a4[i];
+
+
+ ggg[i] = f2[i] + c2[i];
+ ggg2[i] = f2[i] + d2[i];
+ ggg3[i] = f3[i] + d3[i];
+ ggg4[i] = f4[i] + a4[i];
+ ggg5[i] = f[i] + a4[i];
+ ggg5[i] = f5[i] + a4[i];
+
+ gggg[i] = f2[i] + c2[i];
+ gggg2[i] = f2[i] + d2[i];
+ gggg3[i] = f3[i] + d3[i];
+ gggg4[i] = f4[i] + a4[i];
+ gggg5[i] = f[i] + a4[i];
+ gggg5[i] = f5[i] + a4[i];
+
+ ggggg[i] = f2[i] + c2[i];
+ ggggg2[i] = f2[i] + d2[i];
+ ggggg3[i] = f3[i] + d3[i];
+ ggggg4[i] = f4[i] + a4[i];
+ ggggg5[i] = f[i] + a4[i];
+ ggggg5[i] = f5[i] + a4[i];
+
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i]
+ * e[i] * e2[i] * e3[i] * e4[i] * e5[i]
+ * f[i] * f2[i] * f3[i] * f4[i] * f5[i]
+ * g[i] * g2[i] * g3[i] * g4[i] * g5[i]
+ * gg[i] * gg2[i] * gg3[i] * gg4[i] * gg5[i]
+ * ggg[i] * ggg2[i] * ggg3[i] * ggg4[i] * ggg5[i]
+ * gggg[i] * gggg2[i] * gggg3[i] * gggg4[i] * gggg5[i]
+ * ggggg[i] * ggggg2[i] * ggggg3[i] * ggggg4[i] * ggggg5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c
new file mode 100644
index 0000000..dfd7141
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul1-7.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -Wno-psabi -fdump-tree-vect-details" } */
+
+#include "riscv_vector.h"
+
+vint32m8_t
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n, vint32m8_t vector)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]
+ + a[i] * a2[i] * a3[i] * a4[i] * a5[i] * c[i] * c2[i] * c3[i]
+ * c4[i] * c5[i] * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+ return vector;
+}
+
+/* { dg-final { scan-assembler {e32,m1} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 1" 1 "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c
new file mode 100644
index 0000000..ce83bb2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-1.c
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c
new file mode 100644
index 0000000..a80b1b1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-2.c
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int8_t *__restrict c,
+ int8_t *__restrict a2, int8_t *__restrict b2, int8_t *__restrict c2,
+ int8_t *__restrict a3, int8_t *__restrict b3, int8_t *__restrict c3,
+ int8_t *__restrict a4, int8_t *__restrict b4, int8_t *__restrict c4,
+ int8_t *__restrict a5, int8_t *__restrict b5, int8_t *__restrict c5,
+ int8_t *__restrict d,
+ int8_t *__restrict d2,
+ int8_t *__restrict d3,
+ int8_t *__restrict d4,
+ int8_t *__restrict d5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m2} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c
new file mode 100644
index 0000000..ce83bb2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-3.c
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d,
+ int32_t *__restrict d2,
+ int32_t *__restrict d3,
+ int32_t *__restrict d4,
+ int32_t *__restrict d5,
+ int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i] + a[i] * a2[i] * a3[i] * a4[i]
+ * a5[i] * c[i] * c2[i] * c3[i] * c4[i] * c5[i]
+ * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
new file mode 100644
index 0000000..9964f3f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-4.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include "riscv_vector.h"
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n)
+{
+ vint32m1_t v = __riscv_vle32_v_i32m1 (a, 32);
+ __riscv_vse32_v_i32m1 (c, v, 32);
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]
+ + a[i] * a2[i] * a3[i] * a4[i] * a5[i] * c[i] * c2[i] * c3[i]
+ * c4[i] * c5[i] * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
new file mode 100644
index 0000000..ab670bf
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-5.c
@@ -0,0 +1,52 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+typedef int8_t v128qi __attribute__ ((vector_size (128)));
+
+v128qi global_v;
+
+v128qi
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]
+ + a[i] * a2[i] * a3[i] * a4[i] * a5[i] * c[i] * c2[i] * c3[i]
+ * c4[i] * c5[i] * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+ return global_v + 3;
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
new file mode 100644
index 0000000..a01e32b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul2-6.c
@@ -0,0 +1,54 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+typedef int8_t v128qi __attribute__ ((vector_size (128)));
+
+v128qi global_v;
+
+v128qi
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n)
+{
+ for (int i = 0; i < 128; i++)
+ b[i] = global_v[i] + 8;
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d2[i] = a2[i] + c2[i];
+ d3[i] = a3[i] + c3[i];
+ d4[i] = a4[i] + c4[i];
+ d5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i] + a[i];
+
+ c2[i] = a[i] + c[i];
+ c3[i] = b5[i] * a5[i];
+ c4[i] = a2[i] * a3[i];
+ c5[i] = b5[i] * a2[i];
+ c[i] = a[i] + c3[i];
+ c2[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]
+ + a[i] * a2[i] * a3[i] * a4[i] * a5[i] * c[i] * c2[i] * c3[i]
+ * c4[i] * c5[i] * d[i] * d2[i] * d3[i] * d4[i] * d5[i];
+ }
+ return global_v + 3;
+}
+
+/* { dg-final { scan-assembler {e32,m2} } } */
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 2" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
new file mode 100644
index 0000000..156ccc7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-1.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict c,
+ int32_t *__restrict a2, int32_t *__restrict b2, int32_t *__restrict c2,
+ int32_t *__restrict a3, int32_t *__restrict b3, int32_t *__restrict c3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict c4,
+ int32_t *__restrict a5, int32_t *__restrict b5, int32_t *__restrict c5,
+ int32_t *__restrict d, int32_t *__restrict d2, int32_t *__restrict d3,
+ int32_t *__restrict d4, int32_t *__restrict d5, int n, int m)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d[i] = a[i] - a2[i];
+ d2[i] = a2[i] * a[i];
+ d3[i] = a3[i] * a2[i];
+ d4[i] = a2[i] * d2[i];
+ d5[i] = a[i] * a2[i] * a3[i] * a4[i] * d[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
new file mode 100644
index 0000000..4cacc03
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-2.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int8_t *__restrict c,
+ int8_t *__restrict a2, int8_t *__restrict b2, int8_t *__restrict c2,
+ int8_t *__restrict a3, int8_t *__restrict b3, int8_t *__restrict c3,
+ int8_t *__restrict a4, int8_t *__restrict b4, int8_t *__restrict c4,
+ int8_t *__restrict a5, int8_t *__restrict b5, int8_t *__restrict c5,
+ int8_t *__restrict d, int8_t *__restrict d2, int8_t *__restrict d3,
+ int8_t *__restrict d4, int8_t *__restrict d5, int n, int m)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ d[i] = a[i] - a2[i];
+ d2[i] = a2[i] * a[i];
+ d3[i] = a3[i] * a2[i];
+ d4[i] = a2[i] * d2[i];
+ d5[i] = a[i] * a2[i] * a3[i] * a4[i] * d[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
new file mode 100644
index 0000000..2308109
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-3.c
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void foo2 (int64_t *__restrict a,
+ int8_t *__restrict b,
+ int8_t *__restrict c,
+ int8_t *__restrict a2,
+ int8_t *__restrict b2,
+ int8_t *__restrict c2,
+ int8_t *__restrict a3,
+ int8_t *__restrict b3,
+ int8_t *__restrict c3,
+ int8_t *__restrict a4,
+ int8_t *__restrict b4,
+ int8_t *__restrict c4,
+ int64_t *__restrict a5,
+ int8_t *__restrict b5,
+ int8_t *__restrict c5,
+ int n)
+{
+ for (int i = 0; i < n; i++){
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i]+ a[i];
+
+ a[i] = a[i] + c[i];
+ b5[i] = a[i] + c[i];
+ a2[i] = a[i] + c2[i];
+ a3[i] = a[i] + c3[i];
+ a4[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]+ a[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e64,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-4.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-4.c
new file mode 100644
index 0000000..2a1521b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-4.c
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void foo2 (int64_t *__restrict a,
+ int32_t *__restrict b,
+ int32_t *__restrict c,
+ int32_t *__restrict a2,
+ int32_t *__restrict b2,
+ int32_t *__restrict c2,
+ int32_t *__restrict a3,
+ int32_t *__restrict b3,
+ int32_t *__restrict c3,
+ int32_t *__restrict a4,
+ int32_t *__restrict b4,
+ int32_t *__restrict c4,
+ int64_t *__restrict a5,
+ int32_t *__restrict b5,
+ int32_t *__restrict c5,
+ int n)
+{
+ for (int i = 0; i < n; i++){
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i]+ a[i];
+
+ a[i] = a[i] + c[i];
+ b5[i] = a[i] + c[i];
+ a2[i] = a[i] + c2[i];
+ a3[i] = a[i] + c3[i];
+ a4[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]+ a[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e64,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
new file mode 100644
index 0000000..928a507
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-5.c
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void foo2 (int16_t *__restrict a,
+ int32_t *__restrict b,
+ int32_t *__restrict c,
+ int32_t *__restrict a2,
+ int32_t *__restrict b2,
+ int32_t *__restrict c2,
+ int32_t *__restrict a3,
+ int32_t *__restrict b3,
+ int32_t *__restrict c3,
+ int32_t *__restrict a4,
+ int32_t *__restrict b4,
+ int32_t *__restrict c4,
+ int16_t *__restrict a5,
+ int32_t *__restrict b5,
+ int32_t *__restrict c5,
+ int n)
+{
+ for (int i = 0; i < n; i++){
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i]+ a[i];
+
+ a[i] = a[i] + c[i];
+ b5[i] = a[i] + c[i];
+ a2[i] = a[i] + c2[i];
+ a3[i] = a[i] + c3[i];
+ a4[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]+ a[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c
new file mode 100644
index 0000000..f16cfb9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-6.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fselective-scheduling -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (uint8_t *restrict a, uint8_t *restrict b, int n)
+{
+ for (int i = 0; i < n; ++i)
+ {
+ a[i * 8] = b[i * 8 + 7] + 1;
+ a[i * 8 + 1] = b[i * 8 + 6] + 2;
+ a[i * 8 + 2] = b[i * 8 + 5] + 3;
+ a[i * 8 + 3] = b[i * 8 + 4] + 4;
+ a[i * 8 + 4] = b[i * 8 + 3] + 5;
+ a[i * 8 + 5] = b[i * 8 + 2] + 6;
+ a[i * 8 + 6] = b[i * 8 + 1] + 7;
+ a[i * 8 + 7] = b[i * 8 + 0] + 8;
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m4} } } */
+/* { dg-final { scan-assembler-times {csrr} 1 } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 8" "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
new file mode 100644
index 0000000..e324380
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-7.c
@@ -0,0 +1,47 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void foo2 (int8_t *__restrict a,
+ int64_t *__restrict b,
+ int64_t *__restrict c,
+ int64_t *__restrict a2,
+ int64_t *__restrict b2,
+ int64_t *__restrict c2,
+ int64_t *__restrict a3,
+ int64_t *__restrict b3,
+ int64_t *__restrict c3,
+ int64_t *__restrict a4,
+ int64_t *__restrict b4,
+ int64_t *__restrict c4,
+ int8_t *__restrict a5,
+ int64_t *__restrict b5,
+ int64_t *__restrict c5,
+ int n)
+{
+ for (int i = 0; i < n; i++){
+ a[i] = b[i] + c[i];
+ b5[i] = b[i] + c[i];
+ a2[i] = b2[i] + c2[i];
+ a3[i] = b3[i] + c3[i];
+ a4[i] = b4[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a5[i] + b5[i]+ a[i];
+
+ a[i] = a[i] + c[i];
+ b5[i] = a[i] + c[i];
+ a2[i] = a[i] + c2[i];
+ a3[i] = a[i] + c3[i];
+ a4[i] = a[i] + c4[i];
+ a5[i] = a[i] + a4[i];
+ a[i] = a[i] + b5[i]+ a[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e64,m4} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c
new file mode 100644
index 0000000..553f2aa
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-8.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fselective-scheduling -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (uint8_t *restrict a, uint8_t *restrict b, int n)
+{
+ for (int i = 0; i < n; ++i)
+ {
+ a[i * 16] = b[i * 16 + 15] + 1;
+ a[i * 16 + 1] = b[i * 16 + 14] + 2;
+ a[i * 16 + 2] = b[i * 16 + 13] + 3;
+ a[i * 16 + 3] = b[i * 16 + 12] + 4;
+ a[i * 16 + 4] = b[i * 16 + 11] + 5;
+ a[i * 16 + 5] = b[i * 16 + 10] + 6;
+ a[i * 16 + 6] = b[i * 16 + 9] + 7;
+ a[i * 16 + 7] = b[i * 16 + 8] + 8;
+
+ a[i * 16 + 8] = b[i * 16 + 7] + 1;
+ a[i * 16 + 9] = b[i * 16 + 6] + 2;
+ a[i * 16 + 10] = b[i * 16 + 5] + 3;
+ a[i * 16 + 11] = b[i * 16 + 4] + 4;
+ a[i * 16 + 12] = b[i * 16 + 3] + 5;
+ a[i * 16 + 13] = b[i * 16 + 2] + 6;
+ a[i * 16 + 14] = b[i * 16 + 1] + 7;
+ a[i * 16 + 15] = b[i * 16 + 0] + 8;
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m4} } } */
+/* { dg-final { scan-assembler-times {csrr} 1 } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 8" "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c
new file mode 100644
index 0000000..e420860
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul4-9.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fselective-scheduling -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+#define N 40
+
+int a[N];
+
+__attribute__ ((noinline)) int
+foo (){
+ int i,j;
+ int sum,x;
+
+ for (i = 0; i < N; i++) {
+ sum = 0;
+ for (j = 0; j < N; j++) {
+ sum += (i + j);
+ }
+ a[i] = sum;
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m4} } } */
+/* { dg-final { scan-assembler-times {csrr} 1 } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 4" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c
new file mode 100644
index 0000000..e248300
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-1.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int n)
+{
+ for (int i = 0; i < n; i++)
+ a[i] = a[i] + b[i];
+}
+
+/* { dg-final { scan-assembler {e32,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c
new file mode 100644
index 0000000..e65abb2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-10.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+int
+foo (int *x, int n, int res)
+{
+ for (int i = 0; i < n; ++i)
+ {
+ res += x[i * 2];
+ res += x[i * 2 + 1];
+ }
+ return res;
+}
+
+/* { dg-final { scan-assembler {e32,m8} } } */
+/* { dg-final { scan-assembler-times {csrr} 1 } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
new file mode 100644
index 0000000..a50265f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-2.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int16_t *__restrict b, int n)
+{
+ for (int i = 0; i < n; i++)
+ a[i] = a[i] + b[i];
+}
+
+/* { dg-final { scan-assembler {e32,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c
new file mode 100644
index 0000000..3e9751a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-3.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gcv -mabi=ilp32 --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int n)
+{
+ for (int i = 0; i < n; i++)
+ a[i] = a[i] + b[i];
+}
+
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c
new file mode 100644
index 0000000..3b2527a
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-4.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+#include <stddef.h>
+
+void
+foo (size_t *__restrict a, size_t *__restrict b, int n)
+{
+ for (int i = 0; i < n; i++)
+ a[i] = a[i] + b[i];
+}
+
+/* { dg-final { scan-assembler {e64,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c
new file mode 100644
index 0000000..d63926f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-5.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int n)
+{
+ for (int i = 0; i < n; i++){
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ a[i] = a[i] + b[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c
new file mode 100644
index 0000000..5c81614
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-6.c
@@ -0,0 +1,23 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int8_t *__restrict a, int8_t *__restrict b, int8_t *__restrict a2,
+ int8_t *__restrict b2, int8_t *__restrict a3, int8_t *__restrict b3,
+ int8_t *__restrict a4, int8_t *__restrict b4, int8_t *__restrict a5,
+ int8_t *__restrict b5, int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] * a2[i] * b2[i] * a3[i] * b3[i] * a4[i] * b4[i] * a5[i] * b5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c
new file mode 100644
index 0000000..596608b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-7.c
@@ -0,0 +1,23 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+void
+foo (int32_t *__restrict a, int32_t *__restrict b, int32_t *__restrict a2,
+ int32_t *__restrict b2, int32_t *__restrict a3, int32_t *__restrict b3,
+ int32_t *__restrict a4, int32_t *__restrict b4, int32_t *__restrict a5,
+ int32_t *__restrict b5, int n)
+{
+ for (int i = 0; i < n; i++)
+ {
+ a[i] = b[i] * a2[i] * b2[i] * a3[i] * b3[i] * a4[i] * b4[i] * a5[i] * b5[i];
+ }
+}
+
+/* { dg-final { scan-assembler {e32,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c
new file mode 100644
index 0000000..a859d97
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-8.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+int8_t
+foo (int8_t *__restrict a, int8_t init, int n)
+{
+ for (int i = 0; i < n; i++)
+ init += a[i];
+ return init;
+}
+
+/* { dg-final { scan-assembler {e8,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c
new file mode 100644
index 0000000..b965fd0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/dynamic-lmul8-9.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param riscv-autovec-preference=scalable -fdump-tree-vect-details" } */
+
+#include <stdint-gcc.h>
+
+int64_t
+foo (int64_t *__restrict a, int64_t init, int n)
+{
+ for (int i = 0; i < n; i++)
+ init += a[i];
+ return init;
+}
+
+/* { dg-final { scan-assembler {e64,m8} } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-times "Maximum lmul = 8" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 4" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 2" "vect" } } */
+/* { dg-final { scan-tree-dump-not "Maximum lmul = 1" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp
new file mode 100644
index 0000000..a3e8f50
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/riscv/rvv/rvv-costmodel-vect.exp
@@ -0,0 +1,52 @@
+# Copyright (C) 2023-2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# Exit immediately if this isn't a riscv target.
+if { ![istarget riscv*-*-*] } then {
+ return
+}
+
+# Load support procs.
+load_lib gcc-dg.exp
+
+# If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+ set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+}
+
+set gcc_march "rv64gcv_zvfh"
+set gcc_mabi "lp64d"
+if [istarget riscv32-*-*] then {
+ set gcc_march "rv32gcv_zvfh"
+ set gcc_mabi "ilp32d"
+}
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+set CFLAGS "$DEFAULT_CFLAGS -march=$gcc_march -mabi=$gcc_mabi -O3"
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dynamic-lmul*.\[cS\]]] \
+ "-O3 -ftree-vectorize --param riscv-autovec-lmul=dynamic" $CFLAGS
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.dg/vect/slp-1.c b/gcc/testsuite/gcc.dg/vect/slp-1.c
index 82e4f64..d4a13f1 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-1.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-1.c
@@ -122,5 +122,5 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" } } */
-
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" { target {! vect_strided5 } } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" { target vect_strided5 } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-16.c b/gcc/testsuite/gcc.dg/vect/slp-16.c
index d053a64..44ba730 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-16.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-16.c
@@ -67,5 +67,5 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_int_mult } } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target vect_int_mult } } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target { vect_int_mult && {! vect_strided6 } } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-34-big-array.c b/gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
index 0baaff7..db0e440 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-34-big-array.c
@@ -63,5 +63,5 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target {! vect_strided5 } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-34.c b/gcc/testsuite/gcc.dg/vect/slp-34.c
index 41832d7..53b8284d 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-34.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-34.c
@@ -57,5 +57,5 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 "vect" { target {! vect_strided5 } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/slp-35.c b/gcc/testsuite/gcc.dg/vect/slp-35.c
index 5e9f673..2c9d168 100644
--- a/gcc/testsuite/gcc.dg/vect/slp-35.c
+++ b/gcc/testsuite/gcc.dg/vect/slp-35.c
@@ -68,5 +68,5 @@ int main (void)
}
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target {! vect_strided5 } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-117.c b/gcc/testsuite/gcc.dg/vect/vect-117.c
index 010d63c..4755e39 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-117.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-117.c
@@ -61,4 +61,4 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "Invalid sum" "optimized" { target { lp64 } } } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/pr105928.c b/gcc/testsuite/gcc.target/aarch64/pr105928.c
new file mode 100644
index 0000000..9aff892
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/pr105928.c
@@ -0,0 +1,43 @@
+/* { dg-do assemble } */
+/* { dg-options "-O2 --save-temps" } */
+
+long long f1 (void)
+{
+ return 0x80402010080400;
+}
+
+long long f2 (void)
+{
+ return 0x1234567812345678;
+}
+
+long long f3 (void)
+{
+ return 0x4567800012345678;
+}
+
+long long f4 (void)
+{
+ return 0x3ecccccd3ecccccd;
+}
+
+long long f5 (void)
+{
+ return 0x38e38e38e38e38e;
+}
+
+long long f6 (void)
+{
+ return 0x1745d1745d1745d;
+}
+
+void f7 (long long *p)
+{
+ *p = 0x1234567812345678;
+}
+
+/* { dg-final { scan-assembler-times {\tmovk\t} 7 } } */
+/* { dg-final { scan-assembler-times {\tmov\t} 7 } } */
+/* { dg-final { scan-assembler-times {\tbic\t} 2 } } */
+/* { dg-final { scan-assembler-times {\torr\t} 4 } } */
+/* { dg-final { scan-assembler-times {\tstp\t} 1 } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
new file mode 100644
index 0000000..f0ec138
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
@@ -0,0 +1,55 @@
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+void f(int, ...);
+void g();
+
+/*
+** test1:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1024
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test1(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
+ }
+ g();
+ return 1;
+}
+
+/*
+** test2:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1040
+** str xzr, \[sp, #?1024\]
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test2(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x);
+ }
+ g();
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
new file mode 100644
index 0000000..6383bec
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
@@ -0,0 +1,100 @@
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+void f(int, ...);
+void g();
+
+/*
+** test1:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #4064
+** str xzr, \[sp, #?1024\]
+** cbnz w0, .*
+** bl g
+** ...
+** str x26, \[sp, #?4128\]
+** ...
+*/
+int test1(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x);
+ }
+ g();
+ return 1;
+}
+
+/*
+** test2:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1040
+** str xzr, \[sp, #?1024\]
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test2(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x);
+ }
+ g();
+ return 1;
+}
+
+/*
+** test3:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1024
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test3(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
+ }
+ g();
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
new file mode 100644
index 0000000..562039b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
@@ -0,0 +1,100 @@
+/* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+void f(int, ...);
+void g();
+
+/*
+** test1:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #4064
+** str xzr, \[sp, #?1024\]
+** cbnz w0, .*
+** bl g
+** ...
+** str x26, \[sp, #?4128\]
+** ...
+*/
+int test1(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x);
+ }
+ g();
+ return 1;
+}
+
+/*
+** test2:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1040
+** str xzr, \[sp, #?1024\]
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test2(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x);
+ }
+ g();
+ return 1;
+}
+
+/*
+** test3:
+** ...
+** str x30, \[sp\]
+** sub sp, sp, #1024
+** cbnz w0, .*
+** bl g
+** ...
+*/
+int test3(int z) {
+ __uint128_t x = 0;
+ int y[0x400];
+ if (z)
+ {
+ asm volatile ("" :::
+ "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26");
+ f(0, 0, 0, 0, 0, 0, 0, &y,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x,
+ x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x);
+ }
+ g();
+ return 1;
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
new file mode 100644
index 0000000..690aae8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-20.c
@@ -0,0 +1,3 @@
+/* { dg-options "-O2 -fstack-protector-all -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */
+
+#include "stack-check-prologue-19.c"
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c b/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
new file mode 100644
index 0000000..e71d820
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
@@ -0,0 +1,95 @@
+/* { dg-options " -O -fstack-protector-strong -mstack-protector-guard=sysreg -mstack-protector-guard-reg=tpidr2_el0 -mstack-protector-guard-offset=16" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+void g(void *);
+__SVBool_t *h(void *);
+
+/*
+** test1:
+** sub sp, sp, #288
+** stp x29, x30, \[sp, #?272\]
+** add x29, sp, #?272
+** mrs (x[0-9]+), tpidr2_el0
+** ldr (x[0-9]+), \[\1, #?16\]
+** str \2, \[sp, #?264\]
+** mov \2, #?0
+** add x0, sp, #?8
+** bl g
+** ...
+** mrs .*
+** ...
+** bne .*
+** ...
+** ldp x29, x30, \[sp, #?272\]
+** add sp, sp, #?288
+** ret
+** bl __stack_chk_fail
+*/
+int test1() {
+ int y[0x40];
+ g(y);
+ return 1;
+}
+
+/*
+** test2:
+** stp x29, x30, \[sp, #?-16\]!
+** mov x29, sp
+** sub sp, sp, #1040
+** mrs (x[0-9]+), tpidr2_el0
+** ldr (x[0-9]+), \[\1, #?16\]
+** str \2, \[sp, #?1032\]
+** mov \2, #?0
+** add x0, sp, #?8
+** bl g
+** ...
+** mrs .*
+** ...
+** bne .*
+** ...
+** add sp, sp, #?1040
+** ldp x29, x30, \[sp\], #?16
+** ret
+** bl __stack_chk_fail
+*/
+int test2() {
+ int y[0x100];
+ g(y);
+ return 1;
+}
+
+#pragma GCC target "+sve"
+
+/*
+** test3:
+** stp x29, x30, \[sp, #?-16\]!
+** mov x29, sp
+** addvl sp, sp, #-18
+** ...
+** str p4, \[sp\]
+** ...
+** sub sp, sp, #272
+** mrs (x[0-9]+), tpidr2_el0
+** ldr (x[0-9]+), \[\1, #?16\]
+** str \2, \[sp, #?264\]
+** mov \2, #?0
+** add x0, sp, #?8
+** bl h
+** ...
+** mrs .*
+** ...
+** bne .*
+** ...
+** add sp, sp, #?272
+** ...
+** ldr p4, \[sp\]
+** ...
+** addvl sp, sp, #18
+** ldp x29, x30, \[sp\], #?16
+** ret
+** bl __stack_chk_fail
+*/
+__SVBool_t test3() {
+ int y[0x40];
+ return *h(y);
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c b/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
new file mode 100644
index 0000000..58f322a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c
@@ -0,0 +1,33 @@
+/* { dg-options "-O2 -mcpu=neoverse-v1 -fstack-protector-all" } */
+/* { dg-final { check-function-bodies "**" "" } } */
+
+/*
+** main:
+** ...
+** stp x29, x30, \[sp, #?-[0-9]+\]!
+** ...
+** sub sp, sp, #[0-9]+
+** ...
+** str x[0-9]+, \[x29, #?-8\]
+** ...
+*/
+int f(const char *);
+void g(void *);
+int main(int argc, char* argv[])
+{
+ int a;
+ int b;
+ char c[2+f(argv[1])];
+ int d[0x100];
+ char y;
+
+ y=42; a=4; b=10;
+ c[0] = 'h'; c[1] = '\0';
+
+ c[f(argv[2])] = '\0';
+
+ __builtin_printf("%d %d\n%s\n", a, b, c);
+ g(d);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c
new file mode 100644
index 0000000..9242c63
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/ld1rq_1.c
@@ -0,0 +1,33 @@
+/* { dg-options "-O2" } */
+
+#include <arm_sve.h>
+
+#define TEST_OFFSET(TYPE, SUFFIX, OFFSET) \
+ sv##TYPE##_t \
+ test_##TYPE##_##SUFFIX (TYPE##_t *ptr) \
+ { \
+ return svld1rq(svptrue_b8(), ptr + OFFSET); \
+ }
+
+#define TEST(TYPE) \
+ TEST_OFFSET (TYPE, 0, 0) \
+ TEST_OFFSET (TYPE, 1, 1) \
+ TEST_OFFSET (TYPE, 2, 2) \
+ TEST_OFFSET (TYPE, 16, 16) \
+ TEST_OFFSET (TYPE, 0x10000, 0x10000) \
+ TEST_OFFSET (TYPE, 0x10001, 0x10001) \
+ TEST_OFFSET (TYPE, m1, -1) \
+ TEST_OFFSET (TYPE, m2, -2) \
+ TEST_OFFSET (TYPE, m16, -16) \
+ TEST_OFFSET (TYPE, m0x10000, -0x10000) \
+ TEST_OFFSET (TYPE, m0x10001, -0x10001)
+
+TEST (int8)
+TEST (int16)
+TEST (uint32)
+TEST (uint64)
+
+/* { dg-final { scan-assembler-times {\tld1rqb\t} 11 { target aarch64_little_endian } } } */
+/* { dg-final { scan-assembler-times {\tld1rqh\t} 11 { target aarch64_little_endian } } } */
+/* { dg-final { scan-assembler-times {\tld1rqw\t} 11 { target aarch64_little_endian } } } */
+/* { dg-final { scan-assembler-times {\tld1rqd\t} 11 { target aarch64_little_endian } } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c b/gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
new file mode 100644
index 0000000..b9e6306
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
@@ -0,0 +1,13 @@
+/* { dg-options "-Ofast -mtune=neoverse-v1" } */
+
+double f(double *restrict x, double *restrict y, int *restrict z)
+{
+ double res = 0.0;
+ for (int i = 0; i < 100; ++i)
+ res += x[i] * y[z[i]];
+ return res;
+}
+
+/* { dg-final { scan-assembler-times {\tld1sw\tz[0-9]+\.d,} 1 } } */
+/* { dg-final { scan-assembler-times {\tld1d\tz[0-9]+\.d,} 2 } } */
+/* { dg-final { scan-assembler-times {\tfmla\tz[0-9]+\.d,} 1 } } */
diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c b/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
index 3e01ec3..3530a0d 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c
@@ -11,11 +11,10 @@
** mov x11, sp
** ...
** sub sp, sp, x13
-** str p4, \[sp\]
** cbz w0, [^\n]*
+** str p4, \[sp\]
** ...
** ptrue p0\.b, all
-** ldr p4, \[sp\]
** addvl sp, sp, #1
** ldr x24, \[sp\], 32
** ret
@@ -39,13 +38,12 @@ test_1 (int n)
** mov x11, sp
** ...
** sub sp, sp, x13
-** str p4, \[sp\]
** cbz w0, [^\n]*
+** str p4, \[sp\]
** str p5, \[sp, #1, mul vl\]
** str p6, \[sp, #2, mul vl\]
** ...
** ptrue p0\.b, all
-** ldr p4, \[sp\]
** addvl sp, sp, #1
** ldr x24, \[sp\], 32
** ret
diff --git a/gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c b/gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
index d025e98..2b8e643 100644
--- a/gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
+++ b/gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
@@ -72,8 +72,7 @@ test3 (uint32_t a, uint32x4_t b, uint32x4_t* rt)
** ushr v[0-9]+.16b, v[0-9]+.16b, 7
** mov x[0-9]+, 16512
** movk x[0-9]+, 0x1020, lsl 16
-** movk x[0-9]+, 0x408, lsl 32
-** movk x[0-9]+, 0x102, lsl 48
+** orr x[0-9]+, x[0-9]+, x[0-9]+, lsl 28
** fmov d[0-9]+, x[0-9]+
** pmull v[0-9]+.1q, v[0-9]+.1d, v[0-9]+.1d
** dup v[0-9]+.2d, v[0-9]+.d\[0\]
diff --git a/gcc/testsuite/gcc.target/i386/pr111340.c b/gcc/testsuite/gcc.target/i386/pr111340.c
new file mode 100644
index 0000000..6539ae5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr111340.c
@@ -0,0 +1,9 @@
+/* PR target/111340 */
+/* { dg-do compile { target { fpic && int128 } } } */
+/* { dg-options "-O2 -fpic" } */
+
+void
+bar (void)
+{
+ __asm ("# %0" : : "g" ((((unsigned __int128) 0x123456789abcdef0ULL) << 64) | 0x0fedcba987654321ULL));
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/cmov_ii.c b/gcc/testsuite/gcc.target/loongarch/cmov_ii.c
new file mode 100644
index 0000000..21b468e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/cmov_ii.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-final { scan-assembler "test:.*xor.*maskeqz.*masknez.*or.*" } } */
+
+extern void foo_ii (int *, int *, int *, int *);
+
+int
+test (void)
+{
+ int a, b;
+ int c, d, out;
+ foo_ii (&a, &b, &c, &d);
+ out = a == b ? c : d;
+ return out;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/pr111334.c b/gcc/testsuite/gcc.target/loongarch/pr111334.c
new file mode 100644
index 0000000..47366af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/pr111334.c
@@ -0,0 +1,39 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+unsigned
+util_next_power_of_two (unsigned x)
+{
+ return (1 << __builtin_clz (x - 1));
+}
+
+extern int create_vec_from_array (void);
+
+struct ac_shader_args {
+ struct {
+ unsigned char offset;
+ unsigned char size;
+ } args[384];
+};
+
+struct isel_context {
+ const struct ac_shader_args* args;
+ int arg_temps[384];
+};
+
+
+void
+add_startpgm (struct isel_context* ctx, unsigned short arg_count)
+{
+
+ for (unsigned i = 0, arg = 0; i < arg_count; i++)
+ {
+ unsigned size = ctx->args->args[i].size;
+ unsigned reg = ctx->args->args[i].offset;
+
+ if (reg % ( 4 < util_next_power_of_two (size)
+ ? 4 : util_next_power_of_two (size)))
+ ctx->arg_temps[i] = create_vec_from_array ();
+ }
+}
+
diff --git a/gcc/testsuite/gcc.target/loongarch/strict-align.c b/gcc/testsuite/gcc.target/loongarch/strict-align.c
new file mode 100644
index 0000000..040d849
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/strict-align.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-Ofast -mstrict-align -mlasx" } */
+/* { dg-final { scan-assembler-not "vfadd.s" } } */
+
+void
+foo (float *restrict x, float *restrict y)
+{
+ x[0] = x[0] + y[0];
+ x[1] = x[1] + y[1];
+ x[2] = x[2] + y[2];
+ x[3] = x[3] + y[3];
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
new file mode 100644
index 0000000..b1a903b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-builtin.c
@@ -0,0 +1,4460 @@
+/* Test builtins for LOONGARCH LASX ASE instructions */
+/* { dg-do compile } */
+/* { dg-options "-mlasx" } */
+/* { dg-final { scan-assembler-times "lasx_xvsll_b:.*xvsll\\.b.*lasx_xvsll_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsll_h:.*xvsll\\.h.*lasx_xvsll_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsll_w:.*xvsll\\.w.*lasx_xvsll_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsll_d:.*xvsll\\.d.*lasx_xvsll_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslli_b:.*xvslli\\.b.*lasx_xvslli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslli_h:.*xvslli\\.h.*lasx_xvslli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslli_w:.*xvslli\\.w.*lasx_xvslli_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslli_d:.*xvslli\\.d.*lasx_xvslli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsra_b:.*xvsra\\.b.*lasx_xvsra_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsra_h:.*xvsra\\.h.*lasx_xvsra_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsra_w:.*xvsra\\.w.*lasx_xvsra_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsra_d:.*xvsra\\.d.*lasx_xvsra_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrai_b:.*xvsrai\\.b.*lasx_xvsrai_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrai_h:.*xvsrai\\.h.*lasx_xvsrai_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrai_w:.*xvsrai\\.w.*lasx_xvsrai_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrai_d:.*xvsrai\\.d.*lasx_xvsrai_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrar_b:.*xvsrar\\.b.*lasx_xvsrar_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrar_h:.*xvsrar\\.h.*lasx_xvsrar_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrar_w:.*xvsrar\\.w.*lasx_xvsrar_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrar_d:.*xvsrar\\.d.*lasx_xvsrar_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrari_b:.*xvsrari\\.b.*lasx_xvsrari_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrari_h:.*xvsrari\\.h.*lasx_xvsrari_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrari_w:.*xvsrari\\.w.*lasx_xvsrari_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrari_d:.*xvsrari\\.d.*lasx_xvsrari_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrl_b:.*xvsrl\\.b.*lasx_xvsrl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrl_h:.*xvsrl\\.h.*lasx_xvsrl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrl_w:.*xvsrl\\.w.*lasx_xvsrl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrl_d:.*xvsrl\\.d.*lasx_xvsrl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrli_b:.*xvsrli\\.b.*lasx_xvsrli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrli_h:.*xvsrli\\.h.*lasx_xvsrli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrli_w:.*xvsrli\\.w.*lasx_xvsrli_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrli_d:.*xvsrli\\.d.*lasx_xvsrli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlr_b:.*xvsrlr\\.b.*lasx_xvsrlr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlr_h:.*xvsrlr\\.h.*lasx_xvsrlr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlr_w:.*xvsrlr\\.w.*lasx_xvsrlr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlr_d:.*xvsrlr\\.d.*lasx_xvsrlr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlri_b:.*xvsrlri\\.b.*lasx_xvsrlri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlri_h:.*xvsrlri\\.h.*lasx_xvsrlri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlri_w:.*xvsrlri\\.w.*lasx_xvsrlri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlri_d:.*xvsrlri\\.d.*lasx_xvsrlri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclr_b:.*xvbitclr\\.b.*lasx_xvbitclr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclr_h:.*xvbitclr\\.h.*lasx_xvbitclr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclr_w:.*xvbitclr\\.w.*lasx_xvbitclr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclr_d:.*xvbitclr\\.d.*lasx_xvbitclr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclri_b:.*xvbitclri\\.b.*lasx_xvbitclri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclri_h:.*xvbitclri\\.h.*lasx_xvbitclri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclri_w:.*xvbitclri\\.w.*lasx_xvbitclri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitclri_d:.*xvbitclri\\.d.*lasx_xvbitclri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitset_b:.*xvbitset\\.b.*lasx_xvbitset_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitset_h:.*xvbitset\\.h.*lasx_xvbitset_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitset_w:.*xvbitset\\.w.*lasx_xvbitset_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitset_d:.*xvbitset\\.d.*lasx_xvbitset_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitseti_b:.*xvbitseti\\.b.*lasx_xvbitseti_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitseti_h:.*xvbitseti\\.h.*lasx_xvbitseti_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitseti_w:.*xvbitseti\\.w.*lasx_xvbitseti_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitseti_d:.*xvbitseti\\.d.*lasx_xvbitseti_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrev_b:.*xvbitrev\\.b.*lasx_xvbitrev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrev_h:.*xvbitrev\\.h.*lasx_xvbitrev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrev_w:.*xvbitrev\\.w.*lasx_xvbitrev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrev_d:.*xvbitrev\\.d.*lasx_xvbitrev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrevi_b:.*xvbitrevi\\.b.*lasx_xvbitrevi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrevi_h:.*xvbitrevi\\.h.*lasx_xvbitrevi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrevi_w:.*xvbitrevi\\.w.*lasx_xvbitrevi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitrevi_d:.*xvbitrevi\\.d.*lasx_xvbitrevi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadd_b:.*xvadd\\.b.*lasx_xvadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadd_h:.*xvadd\\.h.*lasx_xvadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadd_w:.*xvadd\\.w.*lasx_xvadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadd_d:.*xvadd\\.d.*lasx_xvadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddi_bu:.*xvaddi\\.bu.*lasx_xvaddi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddi_hu:.*xvaddi\\.hu.*lasx_xvaddi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddi_wu:.*xvaddi\\.wu.*lasx_xvaddi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddi_du:.*xvaddi\\.du.*lasx_xvaddi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsub_b:.*xvsub\\.b.*lasx_xvsub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsub_h:.*xvsub\\.h.*lasx_xvsub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsub_w:.*xvsub\\.w.*lasx_xvsub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsub_d:.*xvsub\\.d.*lasx_xvsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubi_bu:.*xvsubi\\.bu.*lasx_xvsubi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubi_hu:.*xvsubi\\.hu.*lasx_xvsubi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubi_wu:.*xvsubi\\.wu.*lasx_xvsubi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubi_du:.*xvsubi\\.du.*lasx_xvsubi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_b:.*xvmax\\.b.*lasx_xvmax_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_h:.*xvmax\\.h.*lasx_xvmax_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_w:.*xvmax\\.w.*lasx_xvmax_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_d:.*xvmax\\.d.*lasx_xvmax_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_b:.*xvmaxi\\.b.*lasx_xvmaxi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_h:.*xvmaxi\\.h.*lasx_xvmaxi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_w:.*xvmaxi\\.w.*lasx_xvmaxi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_d:.*xvmaxi\\.d.*lasx_xvmaxi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_bu:.*xvmax\\.bu.*lasx_xvmax_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_hu:.*xvmax\\.hu.*lasx_xvmax_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_wu:.*xvmax\\.wu.*lasx_xvmax_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmax_du:.*xvmax\\.du.*lasx_xvmax_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_bu:.*xvmaxi\\.bu.*lasx_xvmaxi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_hu:.*xvmaxi\\.hu.*lasx_xvmaxi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_wu:.*xvmaxi\\.wu.*lasx_xvmaxi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaxi_du:.*xvmaxi\\.du.*lasx_xvmaxi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_b:.*xvmin\\.b.*lasx_xvmin_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_h:.*xvmin\\.h.*lasx_xvmin_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_w:.*xvmin\\.w.*lasx_xvmin_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_d:.*xvmin\\.d.*lasx_xvmin_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_b:.*xvmini\\.b.*lasx_xvmini_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_h:.*xvmini\\.h.*lasx_xvmini_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_w:.*xvmini\\.w.*lasx_xvmini_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_d:.*xvmini\\.d.*lasx_xvmini_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_bu:.*xvmin\\.bu.*lasx_xvmin_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_hu:.*xvmin\\.hu.*lasx_xvmin_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_wu:.*xvmin\\.wu.*lasx_xvmin_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmin_du:.*xvmin\\.du.*lasx_xvmin_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_bu:.*xvmini\\.bu.*lasx_xvmini_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_hu:.*xvmini\\.hu.*lasx_xvmini_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_wu:.*xvmini\\.wu.*lasx_xvmini_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmini_du:.*xvmini\\.du.*lasx_xvmini_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseq_b:.*xvseq\\.b.*lasx_xvseq_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseq_h:.*xvseq\\.h.*lasx_xvseq_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseq_w:.*xvseq\\.w.*lasx_xvseq_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseq_d:.*xvseq\\.d.*lasx_xvseq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseqi_b:.*xvseqi\\.b.*lasx_xvseqi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseqi_h:.*xvseqi\\.h.*lasx_xvseqi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseqi_w:.*xvseqi\\.w.*lasx_xvseqi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvseqi_d:.*xvseqi\\.d.*lasx_xvseqi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_b:.*xvslt\\.b.*lasx_xvslt_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_h:.*xvslt\\.h.*lasx_xvslt_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_w:.*xvslt\\.w.*lasx_xvslt_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_d:.*xvslt\\.d.*lasx_xvslt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_b:.*xvslti\\.b.*lasx_xvslti_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_h:.*xvslti\\.h.*lasx_xvslti_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_w:.*xvslti\\.w.*lasx_xvslti_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_d:.*xvslti\\.d.*lasx_xvslti_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_bu:.*xvslt\\.bu.*lasx_xvslt_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_hu:.*xvslt\\.hu.*lasx_xvslt_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_wu:.*xvslt\\.wu.*lasx_xvslt_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslt_du:.*xvslt\\.du.*lasx_xvslt_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_bu:.*xvslti\\.bu.*lasx_xvslti_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_hu:.*xvslti\\.hu.*lasx_xvslti_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_wu:.*xvslti\\.wu.*lasx_xvslti_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslti_du:.*xvslti\\.du.*lasx_xvslti_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_b:.*xvsle\\.b.*lasx_xvsle_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_h:.*xvsle\\.h.*lasx_xvsle_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_w:.*xvsle\\.w.*lasx_xvsle_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_d:.*xvsle\\.d.*lasx_xvsle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_b:.*xvslei\\.b.*lasx_xvslei_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_h:.*xvslei\\.h.*lasx_xvslei_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_w:.*xvslei\\.w.*lasx_xvslei_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_d:.*xvslei\\.d.*lasx_xvslei_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_bu:.*xvsle\\.bu.*lasx_xvsle_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_hu:.*xvsle\\.hu.*lasx_xvsle_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_wu:.*xvsle\\.wu.*lasx_xvsle_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsle_du:.*xvsle\\.du.*lasx_xvsle_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_bu:.*xvslei\\.bu.*lasx_xvslei_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_hu:.*xvslei\\.hu.*lasx_xvslei_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_wu:.*xvslei\\.wu.*lasx_xvslei_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvslei_du:.*xvslei\\.du.*lasx_xvslei_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_b:.*xvsat\\.b.*lasx_xvsat_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_h:.*xvsat\\.h.*lasx_xvsat_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_w:.*xvsat\\.w.*lasx_xvsat_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_d:.*xvsat\\.d.*lasx_xvsat_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_bu:.*xvsat\\.bu.*lasx_xvsat_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_hu:.*xvsat\\.hu.*lasx_xvsat_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_wu:.*xvsat\\.wu.*lasx_xvsat_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsat_du:.*xvsat\\.du.*lasx_xvsat_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadda_b:.*xvadda\\.b.*lasx_xvadda_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadda_h:.*xvadda\\.h.*lasx_xvadda_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadda_w:.*xvadda\\.w.*lasx_xvadda_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadda_d:.*xvadda\\.d.*lasx_xvadda_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_b:.*xvsadd\\.b.*lasx_xvsadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_h:.*xvsadd\\.h.*lasx_xvsadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_w:.*xvsadd\\.w.*lasx_xvsadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_d:.*xvsadd\\.d.*lasx_xvsadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_bu:.*xvsadd\\.bu.*lasx_xvsadd_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_hu:.*xvsadd\\.hu.*lasx_xvsadd_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_wu:.*xvsadd\\.wu.*lasx_xvsadd_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsadd_du:.*xvsadd\\.du.*lasx_xvsadd_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_b:.*xvavg\\.b.*lasx_xvavg_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_h:.*xvavg\\.h.*lasx_xvavg_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_w:.*xvavg\\.w.*lasx_xvavg_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_d:.*xvavg\\.d.*lasx_xvavg_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_bu:.*xvavg\\.bu.*lasx_xvavg_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_hu:.*xvavg\\.hu.*lasx_xvavg_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_wu:.*xvavg\\.wu.*lasx_xvavg_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavg_du:.*xvavg\\.du.*lasx_xvavg_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_b:.*xvavgr\\.b.*lasx_xvavgr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_h:.*xvavgr\\.h.*lasx_xvavgr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_w:.*xvavgr\\.w.*lasx_xvavgr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_d:.*xvavgr\\.d.*lasx_xvavgr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_bu:.*xvavgr\\.bu.*lasx_xvavgr_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_hu:.*xvavgr\\.hu.*lasx_xvavgr_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_wu:.*xvavgr\\.wu.*lasx_xvavgr_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvavgr_du:.*xvavgr\\.du.*lasx_xvavgr_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_b:.*xvssub\\.b.*lasx_xvssub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_h:.*xvssub\\.h.*lasx_xvssub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_w:.*xvssub\\.w.*lasx_xvssub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_d:.*xvssub\\.d.*lasx_xvssub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_bu:.*xvssub\\.bu.*lasx_xvssub_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_hu:.*xvssub\\.hu.*lasx_xvssub_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_wu:.*xvssub\\.wu.*lasx_xvssub_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssub_du:.*xvssub\\.du.*lasx_xvssub_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_b:.*xvabsd\\.b.*lasx_xvabsd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_h:.*xvabsd\\.h.*lasx_xvabsd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_w:.*xvabsd\\.w.*lasx_xvabsd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_d:.*xvabsd\\.d.*lasx_xvabsd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_bu:.*xvabsd\\.bu.*lasx_xvabsd_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_hu:.*xvabsd\\.hu.*lasx_xvabsd_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_wu:.*xvabsd\\.wu.*lasx_xvabsd_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvabsd_du:.*xvabsd\\.du.*lasx_xvabsd_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmul_b:.*xvmul\\.b.*lasx_xvmul_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmul_h:.*xvmul\\.h.*lasx_xvmul_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmul_w:.*xvmul\\.w.*lasx_xvmul_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmul_d:.*xvmul\\.d.*lasx_xvmul_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmadd_b:.*xvmadd\\.b.*lasx_xvmadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmadd_h:.*xvmadd\\.h.*lasx_xvmadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmadd_w:.*xvmadd\\.w.*lasx_xvmadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmadd_d:.*xvmadd\\.d.*lasx_xvmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmsub_b:.*xvmsub\\.b.*lasx_xvmsub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmsub_h:.*xvmsub\\.h.*lasx_xvmsub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmsub_w:.*xvmsub\\.w.*lasx_xvmsub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmsub_d:.*xvmsub\\.d.*lasx_xvmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_b:.*xvdiv\\.b.*lasx_xvdiv_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_h:.*xvdiv\\.h.*lasx_xvdiv_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_w:.*xvdiv\\.w.*lasx_xvdiv_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_d:.*xvdiv\\.d.*lasx_xvdiv_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_bu:.*xvdiv\\.bu.*lasx_xvdiv_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_hu:.*xvdiv\\.hu.*lasx_xvdiv_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_wu:.*xvdiv\\.wu.*lasx_xvdiv_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvdiv_du:.*xvdiv\\.du.*lasx_xvdiv_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_h_b:.*xvhaddw\\.h\\.b.*lasx_xvhaddw_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_w_h:.*xvhaddw\\.w\\.h.*lasx_xvhaddw_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_d_w:.*xvhaddw\\.d\\.w.*lasx_xvhaddw_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_hu_bu:.*xvhaddw\\.hu\\.bu.*lasx_xvhaddw_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_wu_hu:.*xvhaddw\\.wu\\.hu.*lasx_xvhaddw_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_du_wu:.*xvhaddw\\.du\\.wu.*lasx_xvhaddw_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_h_b:.*xvhsubw\\.h\\.b.*lasx_xvhsubw_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_w_h:.*xvhsubw\\.w\\.h.*lasx_xvhsubw_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_d_w:.*xvhsubw\\.d\\.w.*lasx_xvhsubw_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_hu_bu:.*xvhsubw\\.hu\\.bu.*lasx_xvhsubw_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_wu_hu:.*xvhsubw\\.wu\\.hu.*lasx_xvhsubw_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_du_wu:.*xvhsubw\\.du\\.wu.*lasx_xvhsubw_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_b:.*xvmod\\.b.*lasx_xvmod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_h:.*xvmod\\.h.*lasx_xvmod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_w:.*xvmod\\.w.*lasx_xvmod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_d:.*xvmod\\.d.*lasx_xvmod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_bu:.*xvmod\\.bu.*lasx_xvmod_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_hu:.*xvmod\\.hu.*lasx_xvmod_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_wu:.*xvmod\\.wu.*lasx_xvmod_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmod_du:.*xvmod\\.du.*lasx_xvmod_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepl128vei_b:.*xvrepl128vei\\.b.*lasx_xvrepl128vei_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepl128vei_h:.*xvrepl128vei\\.h.*lasx_xvrepl128vei_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepl128vei_w:.*xvrepl128vei\\.w.*lasx_xvrepl128vei_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepl128vei_d:.*xvrepl128vei\\.d.*lasx_xvrepl128vei_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickev_b:.*xvpickev\\.b.*lasx_xvpickev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickev_h:.*xvpickev\\.h.*lasx_xvpickev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickev_w:.*xvpickev\\.w.*lasx_xvpickev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickev_d:.*xvilvl\\.d.*lasx_xvpickev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickod_b:.*xvpickod\\.b.*lasx_xvpickod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickod_h:.*xvpickod\\.h.*lasx_xvpickod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickod_w:.*xvpickod\\.w.*lasx_xvpickod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickod_d:.*xvilvh\\.d.*lasx_xvpickod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvh_b:.*xvilvh\\.b.*lasx_xvilvh_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvh_h:.*xvilvh\\.h.*lasx_xvilvh_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvh_w:.*xvilvh\\.w.*lasx_xvilvh_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvh_d:.*xvilvh\\.d.*lasx_xvilvh_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvl_b:.*xvilvl\\.b.*lasx_xvilvl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvl_h:.*xvilvl\\.h.*lasx_xvilvl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvl_w:.*xvilvl\\.w.*lasx_xvilvl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvilvl_d:.*xvilvl\\.d.*lasx_xvilvl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackev_b:.*xvpackev\\.b.*lasx_xvpackev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackev_h:.*xvpackev\\.h.*lasx_xvpackev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackev_w:.*xvpackev\\.w.*lasx_xvpackev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackev_d:.*xvilvl\\.d.*lasx_xvpackev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackod_b:.*xvpackod\\.b.*lasx_xvpackod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackod_h:.*xvpackod\\.h.*lasx_xvpackod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackod_w:.*xvpackod\\.w.*lasx_xvpackod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpackod_d:.*xvilvh\\.d.*lasx_xvpackod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf_b:.*xvshuf\\.b.*lasx_xvshuf_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf_h:.*xvshuf\\.h.*lasx_xvshuf_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf_w:.*xvshuf\\.w.*lasx_xvshuf_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf_d:.*xvshuf\\.d.*lasx_xvshuf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvand_v:.*xvand\\.v.*lasx_xvand_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvandi_b:.*xvandi\\.b.*lasx_xvandi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvor_v:.*xvor\\.v.*lasx_xvor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvori_b:.*xvbitseti\\.b.*lasx_xvori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvnor_v:.*xvnor\\.v.*lasx_xvnor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvnori_b:.*xvnori\\.b.*lasx_xvnori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvxor_v:.*xvxor\\.v.*lasx_xvxor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvxori_b:.*xvbitrevi\\.b.*lasx_xvxori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitsel_v:.*xvbitsel\\.v.*lasx_xvbitsel_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbitseli_b:.*xvbitseli\\.b.*lasx_xvbitseli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf4i_b:.*xvshuf4i\\.b.*lasx_xvshuf4i_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf4i_h:.*xvshuf4i\\.h.*lasx_xvshuf4i_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf4i_w:.*xvshuf4i\\.w.*lasx_xvshuf4i_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplgr2vr_b:.*xvreplgr2vr\\.b.*lasx_xvreplgr2vr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplgr2vr_h:.*xvreplgr2vr\\.h.*lasx_xvreplgr2vr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplgr2vr_w:.*xvreplgr2vr\\.w.*lasx_xvreplgr2vr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplgr2vr_d:.*xvreplgr2vr\\.d.*lasx_xvreplgr2vr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpcnt_b:.*xvpcnt\\.b.*lasx_xvpcnt_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpcnt_h:.*xvpcnt\\.h.*lasx_xvpcnt_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpcnt_w:.*xvpcnt\\.w.*lasx_xvpcnt_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpcnt_d:.*xvpcnt\\.d.*lasx_xvpcnt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclo_b:.*xvclo\\.b.*lasx_xvclo_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclo_h:.*xvclo\\.h.*lasx_xvclo_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclo_w:.*xvclo\\.w.*lasx_xvclo_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclo_d:.*xvclo\\.d.*lasx_xvclo_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclz_b:.*xvclz\\.b.*lasx_xvclz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclz_h:.*xvclz\\.h.*lasx_xvclz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclz_w:.*xvclz\\.w.*lasx_xvclz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvclz_d:.*xvclz\\.d.*lasx_xvclz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfadd_s:.*xvfadd\\.s.*lasx_xvfadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfadd_d:.*xvfadd\\.d.*lasx_xvfadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfsub_s:.*xvfsub\\.s.*lasx_xvfsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfsub_d:.*xvfsub\\.d.*lasx_xvfsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmul_s:.*xvfmul\\.s.*lasx_xvfmul_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmul_d:.*xvfmul\\.d.*lasx_xvfmul_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfdiv_s:.*xvfdiv\\.s.*lasx_xvfdiv_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfdiv_d:.*xvfdiv\\.d.*lasx_xvfdiv_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvt_h_s:.*xvfcvt\\.h\\.s.*lasx_xvfcvt_h_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvt_s_d:.*xvfcvt\\.s\\.d.*lasx_xvfcvt_s_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmin_s:.*xvfmin\\.s.*lasx_xvfmin_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmin_d:.*xvfmin\\.d.*lasx_xvfmin_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmina_s:.*xvfmina\\.s.*lasx_xvfmina_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmina_d:.*xvfmina\\.d.*lasx_xvfmina_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmax_s:.*xvfmax\\.s.*lasx_xvfmax_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmax_d:.*xvfmax\\.d.*lasx_xvfmax_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmaxa_s:.*xvfmaxa\\.s.*lasx_xvfmaxa_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmaxa_d:.*xvfmaxa\\.d.*lasx_xvfmaxa_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfclass_s:.*xvfclass\\.s.*lasx_xvfclass_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfclass_d:.*xvfclass\\.d.*lasx_xvfclass_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfsqrt_s:.*xvfsqrt\\.s.*lasx_xvfsqrt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfsqrt_d:.*xvfsqrt\\.d.*lasx_xvfsqrt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrecip_s:.*xvfrecip\\.s.*lasx_xvfrecip_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrecip_d:.*xvfrecip\\.d.*lasx_xvfrecip_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrint_s:.*xvfrint\\.s.*lasx_xvfrint_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrint_d:.*xvfrint\\.d.*lasx_xvfrint_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrsqrt_s:.*xvfrsqrt\\.s.*lasx_xvfrsqrt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrsqrt_d:.*xvfrsqrt\\.d.*lasx_xvfrsqrt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvflogb_s:.*xvflogb\\.s.*lasx_xvflogb_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvflogb_d:.*xvflogb\\.d.*lasx_xvflogb_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvth_s_h:.*xvfcvth\\.s\\.h.*lasx_xvfcvth_s_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvth_d_s:.*xvfcvth\\.d\\.s.*lasx_xvfcvth_d_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvtl_s_h:.*xvfcvtl\\.s\\.h.*lasx_xvfcvtl_s_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcvtl_d_s:.*xvfcvtl\\.d\\.s.*lasx_xvfcvtl_d_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftint_w_s:.*xvftint\\.w\\.s.*lasx_xvftint_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftint_l_d:.*xvftint\\.l\\.d.*lasx_xvftint_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftint_wu_s:.*xvftint\\.wu\\.s.*lasx_xvftint_wu_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftint_lu_d:.*xvftint\\.lu\\.d.*lasx_xvftint_lu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrz_w_s:.*xvftintrz\\.w\\.s.*lasx_xvftintrz_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrz_l_d:.*xvftintrz\\.l\\.d.*lasx_xvftintrz_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrz_wu_s:.*xvftintrz\\.wu\\.s.*lasx_xvftintrz_wu_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrz_lu_d:.*xvftintrz\\.lu\\.d.*lasx_xvftintrz_lu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffint_s_w:.*xvffint\\.s\\.w.*lasx_xvffint_s_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffint_d_l:.*xvffint\\.d\\.l.*lasx_xvffint_d_l" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffint_s_wu:.*xvffint\\.s\\.wu.*lasx_xvffint_s_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffint_d_lu:.*xvffint\\.d\\.lu.*lasx_xvffint_d_lu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve_b:.*xvreplve\\.b.*lasx_xvreplve_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve_h:.*xvreplve\\.h.*lasx_xvreplve_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve_w:.*xvreplve\\.w.*lasx_xvreplve_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve_d:.*xvreplve\\.d.*lasx_xvreplve_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpermi_w:.*xvpermi\\.w.*lasx_xvpermi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvandn_v:.*xvandn\\.v.*lasx_xvandn_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvneg_b:.*xvneg\\.b.*lasx_xvneg_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvneg_h:.*xvneg\\.h.*lasx_xvneg_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvneg_w:.*xvneg\\.w.*lasx_xvneg_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvneg_d:.*xvneg\\.d.*lasx_xvneg_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_b:.*xvmuh\\.b.*lasx_xvmuh_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_h:.*xvmuh\\.h.*lasx_xvmuh_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_w:.*xvmuh\\.w.*lasx_xvmuh_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_d:.*xvmuh\\.d.*lasx_xvmuh_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_bu:.*xvmuh\\.bu.*lasx_xvmuh_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_hu:.*xvmuh\\.hu.*lasx_xvmuh_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_wu:.*xvmuh\\.wu.*lasx_xvmuh_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmuh_du:.*xvmuh\\.du.*lasx_xvmuh_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_h_b:.*xvsllwil\\.h\\.b.*lasx_xvsllwil_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_w_h:.*xvsllwil\\.w\\.h.*lasx_xvsllwil_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_d_w:.*xvsllwil\\.d\\.w.*lasx_xvsllwil_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_hu_bu:.*xvsllwil\\.hu\\.bu.*lasx_xvsllwil_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_wu_hu:.*xvsllwil\\.wu\\.hu.*lasx_xvsllwil_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsllwil_du_wu:.*xvsllwil\\.du\\.wu.*lasx_xvsllwil_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsran_b_h:.*xvsran\\.b\\.h.*lasx_xvsran_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsran_h_w:.*xvsran\\.h\\.w.*lasx_xvsran_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsran_w_d:.*xvsran\\.w\\.d.*lasx_xvsran_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_b_h:.*xvssran\\.b\\.h.*lasx_xvssran_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_h_w:.*xvssran\\.h\\.w.*lasx_xvssran_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_w_d:.*xvssran\\.w\\.d.*lasx_xvssran_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_bu_h:.*xvssran\\.bu\\.h.*lasx_xvssran_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_hu_w:.*xvssran\\.hu\\.w.*lasx_xvssran_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssran_wu_d:.*xvssran\\.wu\\.d.*lasx_xvssran_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarn_b_h:.*xvsrarn\\.b\\.h.*lasx_xvsrarn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarn_h_w:.*xvsrarn\\.h\\.w.*lasx_xvsrarn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarn_w_d:.*xvsrarn\\.w\\.d.*lasx_xvsrarn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_b_h:.*xvssrarn\\.b\\.h.*lasx_xvssrarn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_h_w:.*xvssrarn\\.h\\.w.*lasx_xvssrarn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_w_d:.*xvssrarn\\.w\\.d.*lasx_xvssrarn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_bu_h:.*xvssrarn\\.bu\\.h.*lasx_xvssrarn_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_hu_w:.*xvssrarn\\.hu\\.w.*lasx_xvssrarn_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarn_wu_d:.*xvssrarn\\.wu\\.d.*lasx_xvssrarn_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrln_b_h:.*xvsrln\\.b\\.h.*lasx_xvsrln_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrln_h_w:.*xvsrln\\.h\\.w.*lasx_xvsrln_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrln_w_d:.*xvsrln\\.w\\.d.*lasx_xvsrln_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_bu_h:.*xvssrln\\.bu\\.h.*lasx_xvssrln_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_hu_w:.*xvssrln\\.hu\\.w.*lasx_xvssrln_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_wu_d:.*xvssrln\\.wu\\.d.*lasx_xvssrln_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrn_b_h:.*xvsrlrn\\.b\\.h.*lasx_xvsrlrn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrn_h_w:.*xvsrlrn\\.h\\.w.*lasx_xvsrlrn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrn_w_d:.*xvsrlrn\\.w\\.d.*lasx_xvsrlrn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_bu_h:.*xvssrlrn\\.bu\\.h.*lasx_xvssrlrn_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_hu_w:.*xvssrlrn\\.hu\\.w.*lasx_xvssrlrn_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_wu_d:.*xvssrlrn\\.wu\\.d.*lasx_xvssrlrn_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrstpi_b:.*xvfrstpi\\.b.*lasx_xvfrstpi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrstpi_h:.*xvfrstpi\\.h.*lasx_xvfrstpi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrstp_b:.*xvfrstp\\.b.*lasx_xvfrstp_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrstp_h:.*xvfrstp\\.h.*lasx_xvfrstp_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvshuf4i_d:.*xvshuf4i\\.d.*lasx_xvshuf4i_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbsrl_v:.*xvbsrl\\.v.*lasx_xvbsrl_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvbsll_v:.*xvbsll\\.v.*lasx_xvbsll_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextrins_b:.*xvextrins\\.b.*lasx_xvextrins_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextrins_h:.*xvextrins\\.h.*lasx_xvextrins_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextrins_w:.*xvextrins\\.w.*lasx_xvextrins_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextrins_d:.*xvextrins\\.d.*lasx_xvextrins_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmskltz_b:.*xvmskltz\\.b.*lasx_xvmskltz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmskltz_h:.*xvmskltz\\.h.*lasx_xvmskltz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmskltz_w:.*xvmskltz\\.w.*lasx_xvmskltz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmskltz_d:.*xvmskltz\\.d.*lasx_xvmskltz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsigncov_b:.*xvsigncov\\.b.*lasx_xvsigncov_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsigncov_h:.*xvsigncov\\.h.*lasx_xvsigncov_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsigncov_w:.*xvsigncov\\.w.*lasx_xvsigncov_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsigncov_d:.*xvsigncov\\.d.*lasx_xvsigncov_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmadd_s:.*xvfmadd\\.s.*lasx_xvfmadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmadd_d:.*xvfmadd\\.d.*lasx_xvfmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmsub_s:.*xvfmsub\\.s.*lasx_xvfmsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfmsub_d:.*xvfmsub\\.d.*lasx_xvfmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfnmadd_s:.*xvfnmadd\\.s.*lasx_xvfnmadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfnmadd_d:.*xvfnmadd\\.d.*lasx_xvfnmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfnmsub_s:.*xvfnmsub\\.s.*lasx_xvfnmsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfnmsub_d:.*xvfnmsub\\.d.*lasx_xvfnmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrne_w_s:.*xvftintrne\\.w\\.s.*lasx_xvftintrne_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrne_l_d:.*xvftintrne\\.l\\.d.*lasx_xvftintrne_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrp_w_s:.*xvftintrp\\.w\\.s.*lasx_xvftintrp_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrp_l_d:.*xvftintrp\\.l\\.d.*lasx_xvftintrp_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrm_w_s:.*xvftintrm\\.w\\.s.*lasx_xvftintrm_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrm_l_d:.*xvftintrm\\.l\\.d.*lasx_xvftintrm_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftint_w_d:.*xvftint\\.w\\.d.*lasx_xvftint_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffint_s_l:.*xvffint\\.s\\.l.*lasx_xvffint_s_l" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrz_w_d:.*xvftintrz\\.w\\.d.*lasx_xvftintrz_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrp_w_d:.*xvftintrp\\.w\\.d.*lasx_xvftintrp_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrm_w_d:.*xvftintrm\\.w\\.d.*lasx_xvftintrm_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrne_w_d:.*xvftintrne\\.w\\.d.*lasx_xvftintrne_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftinth_l_s:.*xvftinth\\.l\\.s.*lasx_xvftinth_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintl_l_s:.*xvftintl\\.l\\.s.*lasx_xvftintl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffinth_d_w:.*xvffinth\\.d\\.w.*lasx_xvffinth_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvffintl_d_w:.*xvffintl\\.d\\.w.*lasx_xvffintl_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrzh_l_s:.*xvftintrzh\\.l\\.s.*lasx_xvftintrzh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrzl_l_s:.*xvftintrzl\\.l\\.s.*lasx_xvftintrzl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrph_l_s:.*xvftintrph\\.l\\.s.*lasx_xvftintrph_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrpl_l_s:.*xvftintrpl\\.l\\.s.*lasx_xvftintrpl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrmh_l_s:.*xvftintrmh\\.l\\.s.*lasx_xvftintrmh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrml_l_s:.*xvftintrml\\.l\\.s.*lasx_xvftintrml_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrneh_l_s:.*xvftintrneh\\.l\\.s.*lasx_xvftintrneh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvftintrnel_l_s:.*xvftintrnel\\.l\\.s.*lasx_xvftintrnel_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrne_s:.*xvfrintrne\\.s.*lasx_xvfrintrne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrne_d:.*xvfrintrne\\.d.*lasx_xvfrintrne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrz_s:.*xvfrintrz\\.s.*lasx_xvfrintrz_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrz_d:.*xvfrintrz\\.d.*lasx_xvfrintrz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrp_s:.*xvfrintrp\\.s.*lasx_xvfrintrp_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrp_d:.*xvfrintrp\\.d.*lasx_xvfrintrp_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrm_s:.*xvfrintrm\\.s.*lasx_xvfrintrm_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfrintrm_d:.*xvfrintrm\\.d.*lasx_xvfrintrm_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvld:.*xvld.*lasx_xvld" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvst:.*xvst.*lasx_xvst" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvstelm_b:.*xvstelm\\.b.*lasx_xvstelm_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvstelm_h:.*xvstelm\\.h.*lasx_xvstelm_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvstelm_w:.*xvstelm\\.w.*lasx_xvstelm_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvstelm_d:.*xvstelm\\.d.*lasx_xvstelm_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvinsve0_w:.*xvinsve0\\.w.*lasx_xvinsve0_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvinsve0_d:.*xvinsve0\\.d.*lasx_xvinsve0_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve_w:.*xvpickve\\.w.*lasx_xvpickve_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve_d:.*xvpickve\\.d.*lasx_xvpickve_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_b_h:.*xvssrlrn\\.b\\.h.*lasx_xvssrlrn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_h_w:.*xvssrlrn\\.h\\.w.*lasx_xvssrlrn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrn_w_d:.*xvssrlrn\\.w\\.d.*lasx_xvssrlrn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_b_h:.*xvssrln\\.b\\.h.*lasx_xvssrln_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_h_w:.*xvssrln\\.h\\.w.*lasx_xvssrln_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrln_w_d:.*xvssrln\\.w\\.d.*lasx_xvssrln_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvorn_v:.*xvorn\\.v.*lasx_xvorn_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldi:.*xvldi.*lasx_xvldi" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldx:.*xvldx.*lasx_xvldx" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvstx:.*xvstx.*lasx_xvstx" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextl_qu_du:.*xvextl\\.qu\\.du.*lasx_xvextl_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvinsgr2vr_w:.*xvinsgr2vr\\.w.*lasx_xvinsgr2vr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvinsgr2vr_d:.*xvinsgr2vr\\.d.*lasx_xvinsgr2vr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve0_b:.*xvreplve0\\.b.*lasx_xvreplve0_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve0_h:.*xvreplve0\\.h.*lasx_xvreplve0_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve0_w:.*xvreplve0\\.w.*lasx_xvreplve0_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve0_d:.*xvreplve0\\.d.*lasx_xvreplve0_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvreplve0_q:.*xvreplve0\\.q.*lasx_xvreplve0_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_h_b:.*vext2xv\\.h\\.b.*lasx_vext2xv_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_w_h:.*vext2xv\\.w\\.h.*lasx_vext2xv_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_d_w:.*vext2xv\\.d\\.w.*lasx_vext2xv_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_w_b:.*vext2xv\\.w\\.b.*lasx_vext2xv_w_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_d_h:.*vext2xv\\.d\\.h.*lasx_vext2xv_d_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_d_b:.*vext2xv\\.d\\.b.*lasx_vext2xv_d_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_hu_bu:.*vext2xv\\.hu\\.bu.*lasx_vext2xv_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_wu_hu:.*vext2xv\\.wu\\.hu.*lasx_vext2xv_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_du_wu:.*vext2xv\\.du\\.wu.*lasx_vext2xv_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_wu_bu:.*vext2xv\\.wu\\.bu.*lasx_vext2xv_wu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_du_hu:.*vext2xv\\.du\\.hu.*lasx_vext2xv_du_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_vext2xv_du_bu:.*vext2xv\\.du\\.bu.*lasx_vext2xv_du_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpermi_q:.*xvpermi\\.q.*lasx_xvpermi_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpermi_d:.*xvpermi\\.d.*lasx_xvpermi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvperm_w:.*xvperm\\.w.*lasx_xvperm_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldrepl_b:.*xvldrepl\\.b.*lasx_xvldrepl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldrepl_h:.*xvldrepl\\.h.*lasx_xvldrepl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldrepl_w:.*xvldrepl\\.w.*lasx_xvldrepl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvldrepl_d:.*xvldrepl\\.d.*lasx_xvldrepl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve2gr_w:.*xvpickve2gr\\.w.*lasx_xvpickve2gr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve2gr_wu:.*xvpickve2gr\\.wu.*lasx_xvpickve2gr_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve2gr_d:.*xvpickve2gr\\.d.*lasx_xvpickve2gr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve2gr_du:.*xvpickve2gr\\.du.*lasx_xvpickve2gr_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_q_d:.*xvaddwev\\.q\\.d.*lasx_xvaddwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_d_w:.*xvaddwev\\.d\\.w.*lasx_xvaddwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_w_h:.*xvaddwev\\.w\\.h.*lasx_xvaddwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_h_b:.*xvaddwev\\.h\\.b.*lasx_xvaddwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_q_du:.*xvaddwev\\.q\\.du.*lasx_xvaddwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_d_wu:.*xvaddwev\\.d\\.wu.*lasx_xvaddwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_w_hu:.*xvaddwev\\.w\\.hu.*lasx_xvaddwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_h_bu:.*xvaddwev\\.h\\.bu.*lasx_xvaddwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_q_d:.*xvsubwev\\.q\\.d.*lasx_xvsubwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_d_w:.*xvsubwev\\.d\\.w.*lasx_xvsubwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_w_h:.*xvsubwev\\.w\\.h.*lasx_xvsubwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_h_b:.*xvsubwev\\.h\\.b.*lasx_xvsubwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_q_du:.*xvsubwev\\.q\\.du.*lasx_xvsubwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_d_wu:.*xvsubwev\\.d\\.wu.*lasx_xvsubwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_w_hu:.*xvsubwev\\.w\\.hu.*lasx_xvsubwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwev_h_bu:.*xvsubwev\\.h\\.bu.*lasx_xvsubwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_q_d:.*xvmulwev\\.q\\.d.*lasx_xvmulwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_d_w:.*xvmulwev\\.d\\.w.*lasx_xvmulwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_w_h:.*xvmulwev\\.w\\.h.*lasx_xvmulwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_h_b:.*xvmulwev\\.h\\.b.*lasx_xvmulwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_q_du:.*xvmulwev\\.q\\.du.*lasx_xvmulwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_d_wu:.*xvmulwev\\.d\\.wu.*lasx_xvmulwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_w_hu:.*xvmulwev\\.w\\.hu.*lasx_xvmulwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_h_bu:.*xvmulwev\\.h\\.bu.*lasx_xvmulwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_q_d:.*xvaddwod\\.q\\.d.*lasx_xvaddwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_d_w:.*xvaddwod\\.d\\.w.*lasx_xvaddwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_w_h:.*xvaddwod\\.w\\.h.*lasx_xvaddwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_h_b:.*xvaddwod\\.h\\.b.*lasx_xvaddwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_q_du:.*xvaddwod\\.q\\.du.*lasx_xvaddwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_d_wu:.*xvaddwod\\.d\\.wu.*lasx_xvaddwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_w_hu:.*xvaddwod\\.w\\.hu.*lasx_xvaddwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_h_bu:.*xvaddwod\\.h\\.bu.*lasx_xvaddwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_q_d:.*xvsubwod\\.q\\.d.*lasx_xvsubwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_d_w:.*xvsubwod\\.d\\.w.*lasx_xvsubwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_w_h:.*xvsubwod\\.w\\.h.*lasx_xvsubwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_h_b:.*xvsubwod\\.h\\.b.*lasx_xvsubwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_q_du:.*xvsubwod\\.q\\.du.*lasx_xvsubwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_d_wu:.*xvsubwod\\.d\\.wu.*lasx_xvsubwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_w_hu:.*xvsubwod\\.w\\.hu.*lasx_xvsubwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsubwod_h_bu:.*xvsubwod\\.h\\.bu.*lasx_xvsubwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_q_d:.*xvmulwod\\.q\\.d.*lasx_xvmulwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_d_w:.*xvmulwod\\.d\\.w.*lasx_xvmulwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_w_h:.*xvmulwod\\.w\\.h.*lasx_xvmulwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_h_b:.*xvmulwod\\.h\\.b.*lasx_xvmulwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_q_du:.*xvmulwod\\.q\\.du.*lasx_xvmulwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_d_wu:.*xvmulwod\\.d\\.wu.*lasx_xvmulwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_w_hu:.*xvmulwod\\.w\\.hu.*lasx_xvmulwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_h_bu:.*xvmulwod\\.h\\.bu.*lasx_xvmulwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_d_wu_w:.*xvaddwev\\.d\\.wu\\.w.*lasx_xvaddwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_w_hu_h:.*xvaddwev\\.w\\.hu\\.h.*lasx_xvaddwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_h_bu_b:.*xvaddwev\\.h\\.bu\\.b.*lasx_xvaddwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_d_wu_w:.*xvmulwev\\.d\\.wu\\.w.*lasx_xvmulwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_w_hu_h:.*xvmulwev\\.w\\.hu\\.h.*lasx_xvmulwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_h_bu_b:.*xvmulwev\\.h\\.bu\\.b.*lasx_xvmulwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_d_wu_w:.*xvaddwod\\.d\\.wu\\.w.*lasx_xvaddwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_w_hu_h:.*xvaddwod\\.w\\.hu\\.h.*lasx_xvaddwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_h_bu_b:.*xvaddwod\\.h\\.bu\\.b.*lasx_xvaddwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_d_wu_w:.*xvmulwod\\.d\\.wu\\.w.*lasx_xvmulwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_w_hu_h:.*xvmulwod\\.w\\.hu\\.h.*lasx_xvmulwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_h_bu_b:.*xvmulwod\\.h\\.bu\\.b.*lasx_xvmulwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_q_d:.*xvhaddw\\.q\\.d.*lasx_xvhaddw_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhaddw_qu_du:.*xvhaddw\\.qu\\.du.*lasx_xvhaddw_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_q_d:.*xvhsubw\\.q\\.d.*lasx_xvhsubw_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvhsubw_qu_du:.*xvhsubw\\.qu\\.du.*lasx_xvhsubw_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_q_d:.*xvmaddwev\\.q\\.d.*lasx_xvmaddwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_d_w:.*xvmaddwev\\.d\\.w.*lasx_xvmaddwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_w_h:.*xvmaddwev\\.w\\.h.*lasx_xvmaddwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_h_b:.*xvmaddwev\\.h\\.b.*lasx_xvmaddwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_q_du:.*xvmaddwev\\.q\\.du.*lasx_xvmaddwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_d_wu:.*xvmaddwev\\.d\\.wu.*lasx_xvmaddwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_w_hu:.*xvmaddwev\\.w\\.hu.*lasx_xvmaddwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_h_bu:.*xvmaddwev\\.h\\.bu.*lasx_xvmaddwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_q_d:.*xvmaddwod\\.q\\.d.*lasx_xvmaddwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_d_w:.*xvmaddwod\\.d\\.w.*lasx_xvmaddwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_w_h:.*xvmaddwod\\.w\\.h.*lasx_xvmaddwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_h_b:.*xvmaddwod\\.h\\.b.*lasx_xvmaddwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_q_du:.*xvmaddwod\\.q\\.du.*lasx_xvmaddwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_d_wu:.*xvmaddwod\\.d\\.wu.*lasx_xvmaddwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_w_hu:.*xvmaddwod\\.w\\.hu.*lasx_xvmaddwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_h_bu:.*xvmaddwod\\.h\\.bu.*lasx_xvmaddwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_q_du_d:.*xvmaddwev\\.q\\.du\\.d.*lasx_xvmaddwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_d_wu_w:.*xvmaddwev\\.d\\.wu\\.w.*lasx_xvmaddwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_w_hu_h:.*xvmaddwev\\.w\\.hu\\.h.*lasx_xvmaddwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwev_h_bu_b:.*xvmaddwev\\.h\\.bu\\.b.*lasx_xvmaddwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_q_du_d:.*xvmaddwod\\.q\\.du\\.d.*lasx_xvmaddwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_d_wu_w:.*xvmaddwod\\.d\\.wu\\.w.*lasx_xvmaddwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_w_hu_h:.*xvmaddwod\\.w\\.hu\\.h.*lasx_xvmaddwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmaddwod_h_bu_b:.*xvmaddwod\\.h\\.bu\\.b.*lasx_xvmaddwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotr_b:.*xvrotr\\.b.*lasx_xvrotr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotr_h:.*xvrotr\\.h.*lasx_xvrotr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotr_w:.*xvrotr\\.w.*lasx_xvrotr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotr_d:.*xvrotr\\.d.*lasx_xvrotr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvadd_q:.*xvadd\\.q.*lasx_xvadd_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsub_q:.*xvsub\\.q.*lasx_xvsub_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwev_q_du_d:.*xvaddwev\\.q\\.du\\.d.*lasx_xvaddwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvaddwod_q_du_d:.*xvaddwod\\.q\\.du\\.d.*lasx_xvaddwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwev_q_du_d:.*xvmulwev\\.q\\.du\\.d.*lasx_xvmulwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmulwod_q_du_d:.*xvmulwod\\.q\\.du\\.d.*lasx_xvmulwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmskgez_b:.*xvmskgez\\.b.*lasx_xvmskgez_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvmsknz_b:.*xvmsknz\\.b.*lasx_xvmsknz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_h_b:.*xvexth\\.h\\.b.*lasx_xvexth_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_w_h:.*xvexth\\.w\\.h.*lasx_xvexth_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_d_w:.*xvexth\\.d\\.w.*lasx_xvexth_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_q_d:.*xvexth\\.q\\.d.*lasx_xvexth_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_hu_bu:.*xvexth\\.hu\\.bu.*lasx_xvexth_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_wu_hu:.*xvexth\\.wu\\.hu.*lasx_xvexth_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_du_wu:.*xvexth\\.du\\.wu.*lasx_xvexth_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvexth_qu_du:.*xvexth\\.qu\\.du.*lasx_xvexth_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotri_b:.*xvrotri\\.b.*lasx_xvrotri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotri_h:.*xvrotri\\.h.*lasx_xvrotri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotri_w:.*xvrotri\\.w.*lasx_xvrotri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrotri_d:.*xvrotri\\.d.*lasx_xvrotri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvextl_q_d:.*xvextl\\.q\\.d.*lasx_xvextl_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlni_b_h:.*xvsrlni\\.b\\.h.*lasx_xvsrlni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlni_h_w:.*xvsrlni\\.h\\.w.*lasx_xvsrlni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlni_w_d:.*xvsrlni\\.w\\.d.*lasx_xvsrlni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlni_d_q:.*xvsrlni\\.d\\.q.*lasx_xvsrlni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrni_b_h:.*xvsrlrni\\.b\\.h.*lasx_xvsrlrni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrni_h_w:.*xvsrlrni\\.h\\.w.*lasx_xvsrlrni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrni_w_d:.*xvsrlrni\\.w\\.d.*lasx_xvsrlrni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrlrni_d_q:.*xvsrlrni\\.d\\.q.*lasx_xvsrlrni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_b_h:.*xvssrlni\\.b\\.h.*lasx_xvssrlni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_h_w:.*xvssrlni\\.h\\.w.*lasx_xvssrlni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_w_d:.*xvssrlni\\.w\\.d.*lasx_xvssrlni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_d_q:.*xvssrlni\\.d\\.q.*lasx_xvssrlni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_bu_h:.*xvssrlni\\.bu\\.h.*lasx_xvssrlni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_hu_w:.*xvssrlni\\.hu\\.w.*lasx_xvssrlni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_wu_d:.*xvssrlni\\.wu\\.d.*lasx_xvssrlni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlni_du_q:.*xvssrlni\\.du\\.q.*lasx_xvssrlni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_b_h:.*xvssrlrni\\.b\\.h.*lasx_xvssrlrni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_h_w:.*xvssrlrni\\.h\\.w.*lasx_xvssrlrni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_w_d:.*xvssrlrni\\.w\\.d.*lasx_xvssrlrni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_d_q:.*xvssrlrni\\.d\\.q.*lasx_xvssrlrni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_bu_h:.*xvssrlrni\\.bu\\.h.*lasx_xvssrlrni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_hu_w:.*xvssrlrni\\.hu\\.w.*lasx_xvssrlrni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_wu_d:.*xvssrlrni\\.wu\\.d.*lasx_xvssrlrni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrlrni_du_q:.*xvssrlrni\\.du\\.q.*lasx_xvssrlrni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrani_b_h:.*xvsrani\\.b\\.h.*lasx_xvsrani_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrani_h_w:.*xvsrani\\.h\\.w.*lasx_xvsrani_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrani_w_d:.*xvsrani\\.w\\.d.*lasx_xvsrani_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrani_d_q:.*xvsrani\\.d\\.q.*lasx_xvsrani_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarni_b_h:.*xvsrarni\\.b\\.h.*lasx_xvsrarni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarni_h_w:.*xvsrarni\\.h\\.w.*lasx_xvsrarni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarni_w_d:.*xvsrarni\\.w\\.d.*lasx_xvsrarni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvsrarni_d_q:.*xvsrarni\\.d\\.q.*lasx_xvsrarni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_b_h:.*xvssrani\\.b\\.h.*lasx_xvssrani_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_h_w:.*xvssrani\\.h\\.w.*lasx_xvssrani_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_w_d:.*xvssrani\\.w\\.d.*lasx_xvssrani_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_d_q:.*xvssrani\\.d\\.q.*lasx_xvssrani_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_bu_h:.*xvssrani\\.bu\\.h.*lasx_xvssrani_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_hu_w:.*xvssrani\\.hu\\.w.*lasx_xvssrani_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_wu_d:.*xvssrani\\.wu\\.d.*lasx_xvssrani_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrani_du_q:.*xvssrani\\.du\\.q.*lasx_xvssrani_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_b_h:.*xvssrarni\\.b\\.h.*lasx_xvssrarni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_h_w:.*xvssrarni\\.h\\.w.*lasx_xvssrarni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_w_d:.*xvssrarni\\.w\\.d.*lasx_xvssrarni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_d_q:.*xvssrarni\\.d\\.q.*lasx_xvssrarni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_bu_h:.*xvssrarni\\.bu\\.h.*lasx_xvssrarni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_hu_w:.*xvssrarni\\.hu\\.w.*lasx_xvssrarni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_wu_d:.*xvssrarni\\.wu\\.d.*lasx_xvssrarni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvssrarni_du_q:.*xvssrarni\\.du\\.q.*lasx_xvssrarni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbnz_b:.*xvsetanyeqz\\.b.*lasx_xbnz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbnz_d:.*xvsetanyeqz\\.d.*lasx_xbnz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbnz_h:.*xvsetanyeqz\\.h.*lasx_xbnz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbnz_v:.*xvseteqz\\.v.*lasx_xbnz_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbnz_w:.*xvsetanyeqz\\.w.*lasx_xbnz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbz_b:.*xvsetallnez\\.b.*lasx_xbz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbz_d:.*xvsetallnez\\.d.*lasx_xbz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbz_h:.*xvsetallnez\\.h.*lasx_xbz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbz_v:.*xvsetnez\\.v.*lasx_xbz_v" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xbz_w:.*xvsetallnez\\.w.*lasx_xbz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_caf_d:.*xvfcmp\\.caf\\.d.*lasx_xvfcmp_caf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_caf_s:.*xvfcmp\\.caf\\.s.*lasx_xvfcmp_caf_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_ceq_d:.*xvfcmp\\.ceq\\.d.*lasx_xvfcmp_ceq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_ceq_s:.*xvfcmp\\.ceq\\.s.*lasx_xvfcmp_ceq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cle_d:.*xvfcmp\\.cle\\.d.*lasx_xvfcmp_cle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cle_s:.*xvfcmp\\.cle\\.s.*lasx_xvfcmp_cle_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_clt_d:.*xvfcmp\\.clt\\.d.*lasx_xvfcmp_clt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_clt_s:.*xvfcmp\\.clt\\.s.*lasx_xvfcmp_clt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cne_d:.*xvfcmp\\.cne\\.d.*lasx_xvfcmp_cne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cne_s:.*xvfcmp\\.cne\\.s.*lasx_xvfcmp_cne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cor_d:.*xvfcmp\\.cor\\.d.*lasx_xvfcmp_cor_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cor_s:.*xvfcmp\\.cor\\.s.*lasx_xvfcmp_cor_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cueq_d:.*xvfcmp\\.cueq\\.d.*lasx_xvfcmp_cueq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cueq_s:.*xvfcmp\\.cueq\\.s.*lasx_xvfcmp_cueq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cule_d:.*xvfcmp\\.cule\\.d.*lasx_xvfcmp_cule_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cule_s:.*xvfcmp\\.cule\\.s.*lasx_xvfcmp_cule_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cult_d:.*xvfcmp\\.cult\\.d.*lasx_xvfcmp_cult_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cult_s:.*xvfcmp\\.cult\\.s.*lasx_xvfcmp_cult_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cun_d:.*xvfcmp\\.cun\\.d.*lasx_xvfcmp_cun_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cune_d:.*xvfcmp\\.cune\\.d.*lasx_xvfcmp_cune_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cune_s:.*xvfcmp\\.cune\\.s.*lasx_xvfcmp_cune_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_cun_s:.*xvfcmp\\.cun\\.s.*lasx_xvfcmp_cun_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_saf_d:.*xvfcmp\\.saf\\.d.*lasx_xvfcmp_saf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_saf_s:.*xvfcmp\\.saf\\.s.*lasx_xvfcmp_saf_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_seq_d:.*xvfcmp\\.seq\\.d.*lasx_xvfcmp_seq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_seq_s:.*xvfcmp\\.seq\\.s.*lasx_xvfcmp_seq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sle_d:.*xvfcmp\\.sle\\.d.*lasx_xvfcmp_sle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sle_s:.*xvfcmp\\.sle\\.s.*lasx_xvfcmp_sle_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_slt_d:.*xvfcmp\\.slt\\.d.*lasx_xvfcmp_slt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_slt_s:.*xvfcmp\\.slt\\.s.*lasx_xvfcmp_slt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sne_d:.*xvfcmp\\.sne\\.d.*lasx_xvfcmp_sne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sne_s:.*xvfcmp\\.sne\\.s.*lasx_xvfcmp_sne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sor_d:.*xvfcmp\\.sor\\.d.*lasx_xvfcmp_sor_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sor_s:.*xvfcmp\\.sor\\.s.*lasx_xvfcmp_sor_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sueq_d:.*xvfcmp\\.sueq\\.d.*lasx_xvfcmp_sueq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sueq_s:.*xvfcmp\\.sueq\\.s.*lasx_xvfcmp_sueq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sule_d:.*xvfcmp\\.sule\\.d.*lasx_xvfcmp_sule_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sule_s:.*xvfcmp\\.sule\\.s.*lasx_xvfcmp_sule_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sult_d:.*xvfcmp\\.sult\\.d.*lasx_xvfcmp_sult_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sult_s:.*xvfcmp\\.sult\\.s.*lasx_xvfcmp_sult_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sun_d:.*xvfcmp\\.sun\\.d.*lasx_xvfcmp_sun_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sune_d:.*xvfcmp\\.sune\\.d.*lasx_xvfcmp_sune_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sune_s:.*xvfcmp\\.sune\\.s.*lasx_xvfcmp_sune_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvfcmp_sun_s:.*xvfcmp\\.sun\\.s.*lasx_xvfcmp_sun_s" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve_d_f:.*xvpickve\\.d.*lasx_xvpickve_d_f" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvpickve_w_f:.*xvpickve\\.w.*lasx_xvpickve_w_f" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepli_b:.*xvrepli\\.b.*lasx_xvrepli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepli_d:.*xvrepli\\.d.*lasx_xvrepli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepli_h:.*xvrepli\\.h.*lasx_xvrepli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lasx_xvrepli_w:.*xvrepli\\.w.*lasx_xvrepli_w" 1 } } */
+
+typedef signed char v32i8 __attribute__ ((vector_size (32), aligned (32)));
+typedef signed char v32i8_b __attribute__ ((vector_size (32), aligned (1)));
+typedef unsigned char v32u8 __attribute__ ((vector_size (32), aligned (32)));
+typedef unsigned char v32u8_b __attribute__ ((vector_size (32), aligned (1)));
+typedef short v16i16 __attribute__ ((vector_size (32), aligned (32)));
+typedef short v16i16_h __attribute__ ((vector_size (32), aligned (2)));
+typedef unsigned short v16u16 __attribute__ ((vector_size (32), aligned (32)));
+typedef unsigned short v16u16_h
+ __attribute__ ((vector_size (32), aligned (2)));
+typedef int v8i32 __attribute__ ((vector_size (32), aligned (32)));
+typedef int v8i32_w __attribute__ ((vector_size (32), aligned (4)));
+typedef unsigned int v8u32 __attribute__ ((vector_size (32), aligned (32)));
+typedef unsigned int v8u32_w __attribute__ ((vector_size (32), aligned (4)));
+typedef long long v4i64 __attribute__ ((vector_size (32), aligned (32)));
+typedef long long v4i64_d __attribute__ ((vector_size (32), aligned (8)));
+typedef unsigned long long v4u64
+ __attribute__ ((vector_size (32), aligned (32)));
+typedef unsigned long long v4u64_d
+ __attribute__ ((vector_size (32), aligned (8)));
+typedef float v8f32 __attribute__ ((vector_size (32), aligned (32)));
+typedef float v8f32_w __attribute__ ((vector_size (32), aligned (4)));
+typedef double v4f64 __attribute__ ((vector_size (32), aligned (32)));
+typedef double v4f64_d __attribute__ ((vector_size (32), aligned (8)));
+
+typedef double v4f64 __attribute__ ((vector_size (32), aligned (32)));
+typedef double v4f64_d __attribute__ ((vector_size (32), aligned (8)));
+
+typedef float __m256 __attribute__ ((__vector_size__ (32), __may_alias__));
+typedef long long __m256i
+ __attribute__ ((__vector_size__ (32), __may_alias__));
+typedef double __m256d __attribute__ ((__vector_size__ (32), __may_alias__));
+
+/* Unaligned version of the same types. */
+typedef float __m256_u
+ __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+typedef long long __m256i_u
+ __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+typedef double __m256d_u
+ __attribute__ ((__vector_size__ (32), __may_alias__, __aligned__ (1)));
+
+v32i8
+__lasx_xvsll_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsll_b (_1, _2);
+}
+v16i16
+__lasx_xvsll_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsll_h (_1, _2);
+}
+v8i32
+__lasx_xvsll_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsll_w (_1, _2);
+}
+v4i64
+__lasx_xvsll_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsll_d (_1, _2);
+}
+v32i8
+__lasx_xvslli_b (v32i8 _1)
+{
+ return __builtin_lasx_xvslli_b (_1, 1);
+}
+v16i16
+__lasx_xvslli_h (v16i16 _1)
+{
+ return __builtin_lasx_xvslli_h (_1, 1);
+}
+v8i32
+__lasx_xvslli_w (v8i32 _1)
+{
+ return __builtin_lasx_xvslli_w (_1, 1);
+}
+v4i64
+__lasx_xvslli_d (v4i64 _1)
+{
+ return __builtin_lasx_xvslli_d (_1, 1);
+}
+v32i8
+__lasx_xvsra_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsra_b (_1, _2);
+}
+v16i16
+__lasx_xvsra_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsra_h (_1, _2);
+}
+v8i32
+__lasx_xvsra_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsra_w (_1, _2);
+}
+v4i64
+__lasx_xvsra_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsra_d (_1, _2);
+}
+v32i8
+__lasx_xvsrai_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsrai_b (_1, 1);
+}
+v16i16
+__lasx_xvsrai_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsrai_h (_1, 1);
+}
+v8i32
+__lasx_xvsrai_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsrai_w (_1, 1);
+}
+v4i64
+__lasx_xvsrai_d (v4i64 _1)
+{
+ return __builtin_lasx_xvsrai_d (_1, 1);
+}
+v32i8
+__lasx_xvsrar_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrar_b (_1, _2);
+}
+v16i16
+__lasx_xvsrar_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrar_h (_1, _2);
+}
+v8i32
+__lasx_xvsrar_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrar_w (_1, _2);
+}
+v4i64
+__lasx_xvsrar_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrar_d (_1, _2);
+}
+v32i8
+__lasx_xvsrari_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsrari_b (_1, 1);
+}
+v16i16
+__lasx_xvsrari_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsrari_h (_1, 1);
+}
+v8i32
+__lasx_xvsrari_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsrari_w (_1, 1);
+}
+v4i64
+__lasx_xvsrari_d (v4i64 _1)
+{
+ return __builtin_lasx_xvsrari_d (_1, 1);
+}
+v32i8
+__lasx_xvsrl_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrl_b (_1, _2);
+}
+v16i16
+__lasx_xvsrl_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrl_h (_1, _2);
+}
+v8i32
+__lasx_xvsrl_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrl_w (_1, _2);
+}
+v4i64
+__lasx_xvsrl_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrl_d (_1, _2);
+}
+v32i8
+__lasx_xvsrli_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsrli_b (_1, 1);
+}
+v16i16
+__lasx_xvsrli_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsrli_h (_1, 1);
+}
+v8i32
+__lasx_xvsrli_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsrli_w (_1, 1);
+}
+v4i64
+__lasx_xvsrli_d (v4i64 _1)
+{
+ return __builtin_lasx_xvsrli_d (_1, 1);
+}
+v32i8
+__lasx_xvsrlr_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrlr_b (_1, _2);
+}
+v16i16
+__lasx_xvsrlr_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrlr_h (_1, _2);
+}
+v8i32
+__lasx_xvsrlr_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrlr_w (_1, _2);
+}
+v4i64
+__lasx_xvsrlr_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrlr_d (_1, _2);
+}
+v32i8
+__lasx_xvsrlri_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsrlri_b (_1, 1);
+}
+v16i16
+__lasx_xvsrlri_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsrlri_h (_1, 1);
+}
+v8i32
+__lasx_xvsrlri_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsrlri_w (_1, 1);
+}
+v4i64
+__lasx_xvsrlri_d (v4i64 _1)
+{
+ return __builtin_lasx_xvsrlri_d (_1, 1);
+}
+v32u8
+__lasx_xvbitclr_b (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvbitclr_b (_1, _2);
+}
+v16u16
+__lasx_xvbitclr_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvbitclr_h (_1, _2);
+}
+v8u32
+__lasx_xvbitclr_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvbitclr_w (_1, _2);
+}
+v4u64
+__lasx_xvbitclr_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvbitclr_d (_1, _2);
+}
+v32u8
+__lasx_xvbitclri_b (v32u8 _1)
+{
+ return __builtin_lasx_xvbitclri_b (_1, 1);
+}
+v16u16
+__lasx_xvbitclri_h (v16u16 _1)
+{
+ return __builtin_lasx_xvbitclri_h (_1, 1);
+}
+v8u32
+__lasx_xvbitclri_w (v8u32 _1)
+{
+ return __builtin_lasx_xvbitclri_w (_1, 1);
+}
+v4u64
+__lasx_xvbitclri_d (v4u64 _1)
+{
+ return __builtin_lasx_xvbitclri_d (_1, 1);
+}
+v32u8
+__lasx_xvbitset_b (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvbitset_b (_1, _2);
+}
+v16u16
+__lasx_xvbitset_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvbitset_h (_1, _2);
+}
+v8u32
+__lasx_xvbitset_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvbitset_w (_1, _2);
+}
+v4u64
+__lasx_xvbitset_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvbitset_d (_1, _2);
+}
+v32u8
+__lasx_xvbitseti_b (v32u8 _1)
+{
+ return __builtin_lasx_xvbitseti_b (_1, 1);
+}
+v16u16
+__lasx_xvbitseti_h (v16u16 _1)
+{
+ return __builtin_lasx_xvbitseti_h (_1, 1);
+}
+v8u32
+__lasx_xvbitseti_w (v8u32 _1)
+{
+ return __builtin_lasx_xvbitseti_w (_1, 1);
+}
+v4u64
+__lasx_xvbitseti_d (v4u64 _1)
+{
+ return __builtin_lasx_xvbitseti_d (_1, 1);
+}
+v32u8
+__lasx_xvbitrev_b (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvbitrev_b (_1, _2);
+}
+v16u16
+__lasx_xvbitrev_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvbitrev_h (_1, _2);
+}
+v8u32
+__lasx_xvbitrev_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvbitrev_w (_1, _2);
+}
+v4u64
+__lasx_xvbitrev_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvbitrev_d (_1, _2);
+}
+v32u8
+__lasx_xvbitrevi_b (v32u8 _1)
+{
+ return __builtin_lasx_xvbitrevi_b (_1, 1);
+}
+v16u16
+__lasx_xvbitrevi_h (v16u16 _1)
+{
+ return __builtin_lasx_xvbitrevi_h (_1, 1);
+}
+v8u32
+__lasx_xvbitrevi_w (v8u32 _1)
+{
+ return __builtin_lasx_xvbitrevi_w (_1, 1);
+}
+v4u64
+__lasx_xvbitrevi_d (v4u64 _1)
+{
+ return __builtin_lasx_xvbitrevi_d (_1, 1);
+}
+v32i8
+__lasx_xvadd_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvadd_b (_1, _2);
+}
+v16i16
+__lasx_xvadd_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvadd_h (_1, _2);
+}
+v8i32
+__lasx_xvadd_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvadd_w (_1, _2);
+}
+v4i64
+__lasx_xvadd_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvadd_d (_1, _2);
+}
+v32i8
+__lasx_xvaddi_bu (v32i8 _1)
+{
+ return __builtin_lasx_xvaddi_bu (_1, 1);
+}
+v16i16
+__lasx_xvaddi_hu (v16i16 _1)
+{
+ return __builtin_lasx_xvaddi_hu (_1, 1);
+}
+v8i32
+__lasx_xvaddi_wu (v8i32 _1)
+{
+ return __builtin_lasx_xvaddi_wu (_1, 1);
+}
+v4i64
+__lasx_xvaddi_du (v4i64 _1)
+{
+ return __builtin_lasx_xvaddi_du (_1, 1);
+}
+v32i8
+__lasx_xvsub_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsub_b (_1, _2);
+}
+v16i16
+__lasx_xvsub_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsub_h (_1, _2);
+}
+v8i32
+__lasx_xvsub_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsub_w (_1, _2);
+}
+v4i64
+__lasx_xvsub_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsub_d (_1, _2);
+}
+v32i8
+__lasx_xvsubi_bu (v32i8 _1)
+{
+ return __builtin_lasx_xvsubi_bu (_1, 1);
+}
+v16i16
+__lasx_xvsubi_hu (v16i16 _1)
+{
+ return __builtin_lasx_xvsubi_hu (_1, 1);
+}
+v8i32
+__lasx_xvsubi_wu (v8i32 _1)
+{
+ return __builtin_lasx_xvsubi_wu (_1, 1);
+}
+v4i64
+__lasx_xvsubi_du (v4i64 _1)
+{
+ return __builtin_lasx_xvsubi_du (_1, 1);
+}
+v32i8
+__lasx_xvmax_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmax_b (_1, _2);
+}
+v16i16
+__lasx_xvmax_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmax_h (_1, _2);
+}
+v8i32
+__lasx_xvmax_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmax_w (_1, _2);
+}
+v4i64
+__lasx_xvmax_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmax_d (_1, _2);
+}
+v32i8
+__lasx_xvmaxi_b (v32i8 _1)
+{
+ return __builtin_lasx_xvmaxi_b (_1, 1);
+}
+v16i16
+__lasx_xvmaxi_h (v16i16 _1)
+{
+ return __builtin_lasx_xvmaxi_h (_1, 1);
+}
+v8i32
+__lasx_xvmaxi_w (v8i32 _1)
+{
+ return __builtin_lasx_xvmaxi_w (_1, 1);
+}
+v4i64
+__lasx_xvmaxi_d (v4i64 _1)
+{
+ return __builtin_lasx_xvmaxi_d (_1, 1);
+}
+v32u8
+__lasx_xvmax_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmax_bu (_1, _2);
+}
+v16u16
+__lasx_xvmax_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmax_hu (_1, _2);
+}
+v8u32
+__lasx_xvmax_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmax_wu (_1, _2);
+}
+v4u64
+__lasx_xvmax_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmax_du (_1, _2);
+}
+v32u8
+__lasx_xvmaxi_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvmaxi_bu (_1, 1);
+}
+v16u16
+__lasx_xvmaxi_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvmaxi_hu (_1, 1);
+}
+v8u32
+__lasx_xvmaxi_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvmaxi_wu (_1, 1);
+}
+v4u64
+__lasx_xvmaxi_du (v4u64 _1)
+{
+ return __builtin_lasx_xvmaxi_du (_1, 1);
+}
+v32i8
+__lasx_xvmin_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmin_b (_1, _2);
+}
+v16i16
+__lasx_xvmin_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmin_h (_1, _2);
+}
+v8i32
+__lasx_xvmin_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmin_w (_1, _2);
+}
+v4i64
+__lasx_xvmin_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmin_d (_1, _2);
+}
+v32i8
+__lasx_xvmini_b (v32i8 _1)
+{
+ return __builtin_lasx_xvmini_b (_1, 1);
+}
+v16i16
+__lasx_xvmini_h (v16i16 _1)
+{
+ return __builtin_lasx_xvmini_h (_1, 1);
+}
+v8i32
+__lasx_xvmini_w (v8i32 _1)
+{
+ return __builtin_lasx_xvmini_w (_1, 1);
+}
+v4i64
+__lasx_xvmini_d (v4i64 _1)
+{
+ return __builtin_lasx_xvmini_d (_1, 1);
+}
+v32u8
+__lasx_xvmin_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmin_bu (_1, _2);
+}
+v16u16
+__lasx_xvmin_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmin_hu (_1, _2);
+}
+v8u32
+__lasx_xvmin_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmin_wu (_1, _2);
+}
+v4u64
+__lasx_xvmin_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmin_du (_1, _2);
+}
+v32u8
+__lasx_xvmini_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvmini_bu (_1, 1);
+}
+v16u16
+__lasx_xvmini_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvmini_hu (_1, 1);
+}
+v8u32
+__lasx_xvmini_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvmini_wu (_1, 1);
+}
+v4u64
+__lasx_xvmini_du (v4u64 _1)
+{
+ return __builtin_lasx_xvmini_du (_1, 1);
+}
+v32i8
+__lasx_xvseq_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvseq_b (_1, _2);
+}
+v16i16
+__lasx_xvseq_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvseq_h (_1, _2);
+}
+v8i32
+__lasx_xvseq_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvseq_w (_1, _2);
+}
+v4i64
+__lasx_xvseq_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvseq_d (_1, _2);
+}
+v32i8
+__lasx_xvseqi_b (v32i8 _1)
+{
+ return __builtin_lasx_xvseqi_b (_1, 1);
+}
+v16i16
+__lasx_xvseqi_h (v16i16 _1)
+{
+ return __builtin_lasx_xvseqi_h (_1, 1);
+}
+v8i32
+__lasx_xvseqi_w (v8i32 _1)
+{
+ return __builtin_lasx_xvseqi_w (_1, 1);
+}
+v4i64
+__lasx_xvseqi_d (v4i64 _1)
+{
+ return __builtin_lasx_xvseqi_d (_1, 1);
+}
+v32i8
+__lasx_xvslt_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvslt_b (_1, _2);
+}
+v16i16
+__lasx_xvslt_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvslt_h (_1, _2);
+}
+v8i32
+__lasx_xvslt_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvslt_w (_1, _2);
+}
+v4i64
+__lasx_xvslt_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvslt_d (_1, _2);
+}
+v32i8
+__lasx_xvslti_b (v32i8 _1)
+{
+ return __builtin_lasx_xvslti_b (_1, 1);
+}
+v16i16
+__lasx_xvslti_h (v16i16 _1)
+{
+ return __builtin_lasx_xvslti_h (_1, 1);
+}
+v8i32
+__lasx_xvslti_w (v8i32 _1)
+{
+ return __builtin_lasx_xvslti_w (_1, 1);
+}
+v4i64
+__lasx_xvslti_d (v4i64 _1)
+{
+ return __builtin_lasx_xvslti_d (_1, 1);
+}
+v32i8
+__lasx_xvslt_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvslt_bu (_1, _2);
+}
+v16i16
+__lasx_xvslt_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvslt_hu (_1, _2);
+}
+v8i32
+__lasx_xvslt_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvslt_wu (_1, _2);
+}
+v4i64
+__lasx_xvslt_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvslt_du (_1, _2);
+}
+v32i8
+__lasx_xvslti_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvslti_bu (_1, 1);
+}
+v16i16
+__lasx_xvslti_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvslti_hu (_1, 1);
+}
+v8i32
+__lasx_xvslti_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvslti_wu (_1, 1);
+}
+v4i64
+__lasx_xvslti_du (v4u64 _1)
+{
+ return __builtin_lasx_xvslti_du (_1, 1);
+}
+v32i8
+__lasx_xvsle_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsle_b (_1, _2);
+}
+v16i16
+__lasx_xvsle_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsle_h (_1, _2);
+}
+v8i32
+__lasx_xvsle_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsle_w (_1, _2);
+}
+v4i64
+__lasx_xvsle_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsle_d (_1, _2);
+}
+v32i8
+__lasx_xvslei_b (v32i8 _1)
+{
+ return __builtin_lasx_xvslei_b (_1, 1);
+}
+v16i16
+__lasx_xvslei_h (v16i16 _1)
+{
+ return __builtin_lasx_xvslei_h (_1, 1);
+}
+v8i32
+__lasx_xvslei_w (v8i32 _1)
+{
+ return __builtin_lasx_xvslei_w (_1, 1);
+}
+v4i64
+__lasx_xvslei_d (v4i64 _1)
+{
+ return __builtin_lasx_xvslei_d (_1, 1);
+}
+v32i8
+__lasx_xvsle_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvsle_bu (_1, _2);
+}
+v16i16
+__lasx_xvsle_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvsle_hu (_1, _2);
+}
+v8i32
+__lasx_xvsle_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvsle_wu (_1, _2);
+}
+v4i64
+__lasx_xvsle_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvsle_du (_1, _2);
+}
+v32i8
+__lasx_xvslei_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvslei_bu (_1, 1);
+}
+v16i16
+__lasx_xvslei_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvslei_hu (_1, 1);
+}
+v8i32
+__lasx_xvslei_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvslei_wu (_1, 1);
+}
+v4i64
+__lasx_xvslei_du (v4u64 _1)
+{
+ return __builtin_lasx_xvslei_du (_1, 1);
+}
+v32i8
+__lasx_xvsat_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsat_b (_1, 1);
+}
+v16i16
+__lasx_xvsat_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsat_h (_1, 1);
+}
+v8i32
+__lasx_xvsat_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsat_w (_1, 1);
+}
+v4i64
+__lasx_xvsat_d (v4i64 _1)
+{
+ return __builtin_lasx_xvsat_d (_1, 1);
+}
+v32u8
+__lasx_xvsat_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvsat_bu (_1, 1);
+}
+v16u16
+__lasx_xvsat_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvsat_hu (_1, 1);
+}
+v8u32
+__lasx_xvsat_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvsat_wu (_1, 1);
+}
+v4u64
+__lasx_xvsat_du (v4u64 _1)
+{
+ return __builtin_lasx_xvsat_du (_1, 1);
+}
+v32i8
+__lasx_xvadda_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvadda_b (_1, _2);
+}
+v16i16
+__lasx_xvadda_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvadda_h (_1, _2);
+}
+v8i32
+__lasx_xvadda_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvadda_w (_1, _2);
+}
+v4i64
+__lasx_xvadda_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvadda_d (_1, _2);
+}
+v32i8
+__lasx_xvsadd_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsadd_b (_1, _2);
+}
+v16i16
+__lasx_xvsadd_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsadd_h (_1, _2);
+}
+v8i32
+__lasx_xvsadd_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsadd_w (_1, _2);
+}
+v4i64
+__lasx_xvsadd_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsadd_d (_1, _2);
+}
+v32u8
+__lasx_xvsadd_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvsadd_bu (_1, _2);
+}
+v16u16
+__lasx_xvsadd_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvsadd_hu (_1, _2);
+}
+v8u32
+__lasx_xvsadd_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvsadd_wu (_1, _2);
+}
+v4u64
+__lasx_xvsadd_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvsadd_du (_1, _2);
+}
+v32i8
+__lasx_xvavg_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvavg_b (_1, _2);
+}
+v16i16
+__lasx_xvavg_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvavg_h (_1, _2);
+}
+v8i32
+__lasx_xvavg_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvavg_w (_1, _2);
+}
+v4i64
+__lasx_xvavg_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvavg_d (_1, _2);
+}
+v32u8
+__lasx_xvavg_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvavg_bu (_1, _2);
+}
+v16u16
+__lasx_xvavg_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvavg_hu (_1, _2);
+}
+v8u32
+__lasx_xvavg_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvavg_wu (_1, _2);
+}
+v4u64
+__lasx_xvavg_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvavg_du (_1, _2);
+}
+v32i8
+__lasx_xvavgr_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvavgr_b (_1, _2);
+}
+v16i16
+__lasx_xvavgr_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvavgr_h (_1, _2);
+}
+v8i32
+__lasx_xvavgr_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvavgr_w (_1, _2);
+}
+v4i64
+__lasx_xvavgr_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvavgr_d (_1, _2);
+}
+v32u8
+__lasx_xvavgr_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvavgr_bu (_1, _2);
+}
+v16u16
+__lasx_xvavgr_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvavgr_hu (_1, _2);
+}
+v8u32
+__lasx_xvavgr_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvavgr_wu (_1, _2);
+}
+v4u64
+__lasx_xvavgr_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvavgr_du (_1, _2);
+}
+v32i8
+__lasx_xvssub_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssub_b (_1, _2);
+}
+v16i16
+__lasx_xvssub_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssub_h (_1, _2);
+}
+v8i32
+__lasx_xvssub_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssub_w (_1, _2);
+}
+v4i64
+__lasx_xvssub_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssub_d (_1, _2);
+}
+v32u8
+__lasx_xvssub_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvssub_bu (_1, _2);
+}
+v16u16
+__lasx_xvssub_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvssub_hu (_1, _2);
+}
+v8u32
+__lasx_xvssub_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvssub_wu (_1, _2);
+}
+v4u64
+__lasx_xvssub_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvssub_du (_1, _2);
+}
+v32i8
+__lasx_xvabsd_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvabsd_b (_1, _2);
+}
+v16i16
+__lasx_xvabsd_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvabsd_h (_1, _2);
+}
+v8i32
+__lasx_xvabsd_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvabsd_w (_1, _2);
+}
+v4i64
+__lasx_xvabsd_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvabsd_d (_1, _2);
+}
+v32u8
+__lasx_xvabsd_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvabsd_bu (_1, _2);
+}
+v16u16
+__lasx_xvabsd_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvabsd_hu (_1, _2);
+}
+v8u32
+__lasx_xvabsd_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvabsd_wu (_1, _2);
+}
+v4u64
+__lasx_xvabsd_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvabsd_du (_1, _2);
+}
+v32i8
+__lasx_xvmul_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmul_b (_1, _2);
+}
+v16i16
+__lasx_xvmul_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmul_h (_1, _2);
+}
+v8i32
+__lasx_xvmul_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmul_w (_1, _2);
+}
+v4i64
+__lasx_xvmul_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmul_d (_1, _2);
+}
+v32i8
+__lasx_xvmadd_b (v32i8 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmadd_b (_1, _2, _3);
+}
+v16i16
+__lasx_xvmadd_h (v16i16 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmadd_h (_1, _2, _3);
+}
+v8i32
+__lasx_xvmadd_w (v8i32 _1, v8i32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmadd_w (_1, _2, _3);
+}
+v4i64
+__lasx_xvmadd_d (v4i64 _1, v4i64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmadd_d (_1, _2, _3);
+}
+v32i8
+__lasx_xvmsub_b (v32i8 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmsub_b (_1, _2, _3);
+}
+v16i16
+__lasx_xvmsub_h (v16i16 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmsub_h (_1, _2, _3);
+}
+v8i32
+__lasx_xvmsub_w (v8i32 _1, v8i32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmsub_w (_1, _2, _3);
+}
+v4i64
+__lasx_xvmsub_d (v4i64 _1, v4i64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmsub_d (_1, _2, _3);
+}
+v32i8
+__lasx_xvdiv_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvdiv_b (_1, _2);
+}
+v16i16
+__lasx_xvdiv_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvdiv_h (_1, _2);
+}
+v8i32
+__lasx_xvdiv_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvdiv_w (_1, _2);
+}
+v4i64
+__lasx_xvdiv_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvdiv_d (_1, _2);
+}
+v32u8
+__lasx_xvdiv_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvdiv_bu (_1, _2);
+}
+v16u16
+__lasx_xvdiv_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvdiv_hu (_1, _2);
+}
+v8u32
+__lasx_xvdiv_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvdiv_wu (_1, _2);
+}
+v4u64
+__lasx_xvdiv_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvdiv_du (_1, _2);
+}
+v16i16
+__lasx_xvhaddw_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvhaddw_h_b (_1, _2);
+}
+v8i32
+__lasx_xvhaddw_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvhaddw_w_h (_1, _2);
+}
+v4i64
+__lasx_xvhaddw_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvhaddw_d_w (_1, _2);
+}
+v16u16
+__lasx_xvhaddw_hu_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvhaddw_hu_bu (_1, _2);
+}
+v8u32
+__lasx_xvhaddw_wu_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvhaddw_wu_hu (_1, _2);
+}
+v4u64
+__lasx_xvhaddw_du_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvhaddw_du_wu (_1, _2);
+}
+v16i16
+__lasx_xvhsubw_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvhsubw_h_b (_1, _2);
+}
+v8i32
+__lasx_xvhsubw_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvhsubw_w_h (_1, _2);
+}
+v4i64
+__lasx_xvhsubw_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvhsubw_d_w (_1, _2);
+}
+v16i16
+__lasx_xvhsubw_hu_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvhsubw_hu_bu (_1, _2);
+}
+v8i32
+__lasx_xvhsubw_wu_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvhsubw_wu_hu (_1, _2);
+}
+v4i64
+__lasx_xvhsubw_du_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvhsubw_du_wu (_1, _2);
+}
+v32i8
+__lasx_xvmod_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmod_b (_1, _2);
+}
+v16i16
+__lasx_xvmod_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmod_h (_1, _2);
+}
+v8i32
+__lasx_xvmod_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmod_w (_1, _2);
+}
+v4i64
+__lasx_xvmod_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmod_d (_1, _2);
+}
+v32u8
+__lasx_xvmod_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmod_bu (_1, _2);
+}
+v16u16
+__lasx_xvmod_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmod_hu (_1, _2);
+}
+v8u32
+__lasx_xvmod_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmod_wu (_1, _2);
+}
+v4u64
+__lasx_xvmod_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmod_du (_1, _2);
+}
+v32i8
+__lasx_xvrepl128vei_b (v32i8 _1)
+{
+ return __builtin_lasx_xvrepl128vei_b (_1, 1);
+}
+v16i16
+__lasx_xvrepl128vei_h (v16i16 _1)
+{
+ return __builtin_lasx_xvrepl128vei_h (_1, 1);
+}
+v8i32
+__lasx_xvrepl128vei_w (v8i32 _1)
+{
+ return __builtin_lasx_xvrepl128vei_w (_1, 1);
+}
+v4i64
+__lasx_xvrepl128vei_d (v4i64 _1)
+{
+ return __builtin_lasx_xvrepl128vei_d (_1, 1);
+}
+v32i8
+__lasx_xvpickev_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvpickev_b (_1, _2);
+}
+v16i16
+__lasx_xvpickev_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvpickev_h (_1, _2);
+}
+v8i32
+__lasx_xvpickev_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvpickev_w (_1, _2);
+}
+v4i64
+__lasx_xvpickev_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvpickev_d (_1, _2);
+}
+v32i8
+__lasx_xvpickod_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvpickod_b (_1, _2);
+}
+v16i16
+__lasx_xvpickod_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvpickod_h (_1, _2);
+}
+v8i32
+__lasx_xvpickod_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvpickod_w (_1, _2);
+}
+v4i64
+__lasx_xvpickod_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvpickod_d (_1, _2);
+}
+v32i8
+__lasx_xvilvh_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvilvh_b (_1, _2);
+}
+v16i16
+__lasx_xvilvh_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvilvh_h (_1, _2);
+}
+v8i32
+__lasx_xvilvh_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvilvh_w (_1, _2);
+}
+v4i64
+__lasx_xvilvh_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvilvh_d (_1, _2);
+}
+v32i8
+__lasx_xvilvl_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvilvl_b (_1, _2);
+}
+v16i16
+__lasx_xvilvl_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvilvl_h (_1, _2);
+}
+v8i32
+__lasx_xvilvl_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvilvl_w (_1, _2);
+}
+v4i64
+__lasx_xvilvl_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvilvl_d (_1, _2);
+}
+v32i8
+__lasx_xvpackev_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvpackev_b (_1, _2);
+}
+v16i16
+__lasx_xvpackev_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvpackev_h (_1, _2);
+}
+v8i32
+__lasx_xvpackev_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvpackev_w (_1, _2);
+}
+v4i64
+__lasx_xvpackev_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvpackev_d (_1, _2);
+}
+v32i8
+__lasx_xvpackod_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvpackod_b (_1, _2);
+}
+v16i16
+__lasx_xvpackod_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvpackod_h (_1, _2);
+}
+v8i32
+__lasx_xvpackod_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvpackod_w (_1, _2);
+}
+v4i64
+__lasx_xvpackod_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvpackod_d (_1, _2);
+}
+v32i8
+__lasx_xvshuf_b (v32i8 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvshuf_b (_1, _2, _3);
+}
+v16i16
+__lasx_xvshuf_h (v16i16 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvshuf_h (_1, _2, _3);
+}
+v8i32
+__lasx_xvshuf_w (v8i32 _1, v8i32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvshuf_w (_1, _2, _3);
+}
+v4i64
+__lasx_xvshuf_d (v4i64 _1, v4i64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvshuf_d (_1, _2, _3);
+}
+v32u8
+__lasx_xvand_v (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvand_v (_1, _2);
+}
+v32u8
+__lasx_xvandi_b (v32u8 _1)
+{
+ return __builtin_lasx_xvandi_b (_1, 1);
+}
+v32u8
+__lasx_xvor_v (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvor_v (_1, _2);
+}
+v32u8
+__lasx_xvori_b (v32u8 _1)
+{
+ return __builtin_lasx_xvori_b (_1, 1);
+}
+v32u8
+__lasx_xvnor_v (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvnor_v (_1, _2);
+}
+v32u8
+__lasx_xvnori_b (v32u8 _1)
+{
+ return __builtin_lasx_xvnori_b (_1, 1);
+}
+v32u8
+__lasx_xvxor_v (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvxor_v (_1, _2);
+}
+v32u8
+__lasx_xvxori_b (v32u8 _1)
+{
+ return __builtin_lasx_xvxori_b (_1, 1);
+}
+v32u8
+__lasx_xvbitsel_v (v32u8 _1, v32u8 _2, v32u8 _3)
+{
+ return __builtin_lasx_xvbitsel_v (_1, _2, _3);
+}
+v32u8
+__lasx_xvbitseli_b (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvbitseli_b (_1, _2, 1);
+}
+v32i8
+__lasx_xvshuf4i_b (v32i8 _1)
+{
+ return __builtin_lasx_xvshuf4i_b (_1, 1);
+}
+v16i16
+__lasx_xvshuf4i_h (v16i16 _1)
+{
+ return __builtin_lasx_xvshuf4i_h (_1, 1);
+}
+v8i32
+__lasx_xvshuf4i_w (v8i32 _1)
+{
+ return __builtin_lasx_xvshuf4i_w (_1, 1);
+}
+v32i8
+__lasx_xvreplgr2vr_b (int _1)
+{
+ return __builtin_lasx_xvreplgr2vr_b (_1);
+}
+v16i16
+__lasx_xvreplgr2vr_h (int _1)
+{
+ return __builtin_lasx_xvreplgr2vr_h (_1);
+}
+v8i32
+__lasx_xvreplgr2vr_w (int _1)
+{
+ return __builtin_lasx_xvreplgr2vr_w (_1);
+}
+v4i64
+__lasx_xvreplgr2vr_d (int _1)
+{
+ return __builtin_lasx_xvreplgr2vr_d (_1);
+}
+v32i8
+__lasx_xvpcnt_b (v32i8 _1)
+{
+ return __builtin_lasx_xvpcnt_b (_1);
+}
+v16i16
+__lasx_xvpcnt_h (v16i16 _1)
+{
+ return __builtin_lasx_xvpcnt_h (_1);
+}
+v8i32
+__lasx_xvpcnt_w (v8i32 _1)
+{
+ return __builtin_lasx_xvpcnt_w (_1);
+}
+v4i64
+__lasx_xvpcnt_d (v4i64 _1)
+{
+ return __builtin_lasx_xvpcnt_d (_1);
+}
+v32i8
+__lasx_xvclo_b (v32i8 _1)
+{
+ return __builtin_lasx_xvclo_b (_1);
+}
+v16i16
+__lasx_xvclo_h (v16i16 _1)
+{
+ return __builtin_lasx_xvclo_h (_1);
+}
+v8i32
+__lasx_xvclo_w (v8i32 _1)
+{
+ return __builtin_lasx_xvclo_w (_1);
+}
+v4i64
+__lasx_xvclo_d (v4i64 _1)
+{
+ return __builtin_lasx_xvclo_d (_1);
+}
+v32i8
+__lasx_xvclz_b (v32i8 _1)
+{
+ return __builtin_lasx_xvclz_b (_1);
+}
+v16i16
+__lasx_xvclz_h (v16i16 _1)
+{
+ return __builtin_lasx_xvclz_h (_1);
+}
+v8i32
+__lasx_xvclz_w (v8i32 _1)
+{
+ return __builtin_lasx_xvclz_w (_1);
+}
+v4i64
+__lasx_xvclz_d (v4i64 _1)
+{
+ return __builtin_lasx_xvclz_d (_1);
+}
+v8f32
+__lasx_xvfadd_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfadd_s (_1, _2);
+}
+v4f64
+__lasx_xvfadd_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfadd_d (_1, _2);
+}
+v8f32
+__lasx_xvfsub_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfsub_s (_1, _2);
+}
+v4f64
+__lasx_xvfsub_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfsub_d (_1, _2);
+}
+v8f32
+__lasx_xvfmul_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfmul_s (_1, _2);
+}
+v4f64
+__lasx_xvfmul_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfmul_d (_1, _2);
+}
+v8f32
+__lasx_xvfdiv_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfdiv_s (_1, _2);
+}
+v4f64
+__lasx_xvfdiv_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfdiv_d (_1, _2);
+}
+v16i16
+__lasx_xvfcvt_h_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcvt_h_s (_1, _2);
+}
+v8f32
+__lasx_xvfcvt_s_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcvt_s_d (_1, _2);
+}
+v8f32
+__lasx_xvfmin_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfmin_s (_1, _2);
+}
+v4f64
+__lasx_xvfmin_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfmin_d (_1, _2);
+}
+v8f32
+__lasx_xvfmina_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfmina_s (_1, _2);
+}
+v4f64
+__lasx_xvfmina_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfmina_d (_1, _2);
+}
+v8f32
+__lasx_xvfmax_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfmax_s (_1, _2);
+}
+v4f64
+__lasx_xvfmax_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfmax_d (_1, _2);
+}
+v8f32
+__lasx_xvfmaxa_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfmaxa_s (_1, _2);
+}
+v4f64
+__lasx_xvfmaxa_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfmaxa_d (_1, _2);
+}
+v8i32
+__lasx_xvfclass_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfclass_s (_1);
+}
+v4i64
+__lasx_xvfclass_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfclass_d (_1);
+}
+v8f32
+__lasx_xvfsqrt_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfsqrt_s (_1);
+}
+v4f64
+__lasx_xvfsqrt_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfsqrt_d (_1);
+}
+v8f32
+__lasx_xvfrecip_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrecip_s (_1);
+}
+v4f64
+__lasx_xvfrecip_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrecip_d (_1);
+}
+v8f32
+__lasx_xvfrint_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrint_s (_1);
+}
+v4f64
+__lasx_xvfrint_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrint_d (_1);
+}
+v8f32
+__lasx_xvfrsqrt_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrsqrt_s (_1);
+}
+v4f64
+__lasx_xvfrsqrt_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrsqrt_d (_1);
+}
+v8f32
+__lasx_xvflogb_s (v8f32 _1)
+{
+ return __builtin_lasx_xvflogb_s (_1);
+}
+v4f64
+__lasx_xvflogb_d (v4f64 _1)
+{
+ return __builtin_lasx_xvflogb_d (_1);
+}
+v8f32
+__lasx_xvfcvth_s_h (v16i16 _1)
+{
+ return __builtin_lasx_xvfcvth_s_h (_1);
+}
+v4f64
+__lasx_xvfcvth_d_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfcvth_d_s (_1);
+}
+v8f32
+__lasx_xvfcvtl_s_h (v16i16 _1)
+{
+ return __builtin_lasx_xvfcvtl_s_h (_1);
+}
+v4f64
+__lasx_xvfcvtl_d_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfcvtl_d_s (_1);
+}
+v8i32
+__lasx_xvftint_w_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftint_w_s (_1);
+}
+v4i64
+__lasx_xvftint_l_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftint_l_d (_1);
+}
+v8u32
+__lasx_xvftint_wu_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftint_wu_s (_1);
+}
+v4u64
+__lasx_xvftint_lu_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftint_lu_d (_1);
+}
+v8i32
+__lasx_xvftintrz_w_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrz_w_s (_1);
+}
+v4i64
+__lasx_xvftintrz_l_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftintrz_l_d (_1);
+}
+v8u32
+__lasx_xvftintrz_wu_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrz_wu_s (_1);
+}
+v4u64
+__lasx_xvftintrz_lu_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftintrz_lu_d (_1);
+}
+v8f32
+__lasx_xvffint_s_w (v8i32 _1)
+{
+ return __builtin_lasx_xvffint_s_w (_1);
+}
+v4f64
+__lasx_xvffint_d_l (v4i64 _1)
+{
+ return __builtin_lasx_xvffint_d_l (_1);
+}
+v8f32
+__lasx_xvffint_s_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvffint_s_wu (_1);
+}
+v4f64
+__lasx_xvffint_d_lu (v4u64 _1)
+{
+ return __builtin_lasx_xvffint_d_lu (_1);
+}
+v32i8
+__lasx_xvreplve_b (v32i8 _1, int _2)
+{
+ return __builtin_lasx_xvreplve_b (_1, _2);
+}
+v16i16
+__lasx_xvreplve_h (v16i16 _1, int _2)
+{
+ return __builtin_lasx_xvreplve_h (_1, _2);
+}
+v8i32
+__lasx_xvreplve_w (v8i32 _1, int _2)
+{
+ return __builtin_lasx_xvreplve_w (_1, _2);
+}
+v4i64
+__lasx_xvreplve_d (v4i64 _1, int _2)
+{
+ return __builtin_lasx_xvreplve_d (_1, _2);
+}
+v8i32
+__lasx_xvpermi_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvpermi_w (_1, _2, 1);
+}
+v32u8
+__lasx_xvandn_v (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvandn_v (_1, _2);
+}
+v32i8
+__lasx_xvneg_b (v32i8 _1)
+{
+ return __builtin_lasx_xvneg_b (_1);
+}
+v16i16
+__lasx_xvneg_h (v16i16 _1)
+{
+ return __builtin_lasx_xvneg_h (_1);
+}
+v8i32
+__lasx_xvneg_w (v8i32 _1)
+{
+ return __builtin_lasx_xvneg_w (_1);
+}
+v4i64
+__lasx_xvneg_d (v4i64 _1)
+{
+ return __builtin_lasx_xvneg_d (_1);
+}
+v32i8
+__lasx_xvmuh_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmuh_b (_1, _2);
+}
+v16i16
+__lasx_xvmuh_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmuh_h (_1, _2);
+}
+v8i32
+__lasx_xvmuh_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmuh_w (_1, _2);
+}
+v4i64
+__lasx_xvmuh_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmuh_d (_1, _2);
+}
+v32u8
+__lasx_xvmuh_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmuh_bu (_1, _2);
+}
+v16u16
+__lasx_xvmuh_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmuh_hu (_1, _2);
+}
+v8u32
+__lasx_xvmuh_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmuh_wu (_1, _2);
+}
+v4u64
+__lasx_xvmuh_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmuh_du (_1, _2);
+}
+v16i16
+__lasx_xvsllwil_h_b (v32i8 _1)
+{
+ return __builtin_lasx_xvsllwil_h_b (_1, 1);
+}
+v8i32
+__lasx_xvsllwil_w_h (v16i16 _1)
+{
+ return __builtin_lasx_xvsllwil_w_h (_1, 1);
+}
+v4i64
+__lasx_xvsllwil_d_w (v8i32 _1)
+{
+ return __builtin_lasx_xvsllwil_d_w (_1, 1);
+}
+v16u16
+__lasx_xvsllwil_hu_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvsllwil_hu_bu (_1, 1);
+}
+v8u32
+__lasx_xvsllwil_wu_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvsllwil_wu_hu (_1, 1);
+}
+v4u64
+__lasx_xvsllwil_du_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvsllwil_du_wu (_1, 1);
+}
+v32i8
+__lasx_xvsran_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsran_b_h (_1, _2);
+}
+v16i16
+__lasx_xvsran_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsran_h_w (_1, _2);
+}
+v8i32
+__lasx_xvsran_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsran_w_d (_1, _2);
+}
+v32i8
+__lasx_xvssran_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssran_b_h (_1, _2);
+}
+v16i16
+__lasx_xvssran_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssran_h_w (_1, _2);
+}
+v8i32
+__lasx_xvssran_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssran_w_d (_1, _2);
+}
+v32u8
+__lasx_xvssran_bu_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvssran_bu_h (_1, _2);
+}
+v16u16
+__lasx_xvssran_hu_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvssran_hu_w (_1, _2);
+}
+v8u32
+__lasx_xvssran_wu_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvssran_wu_d (_1, _2);
+}
+v32i8
+__lasx_xvsrarn_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrarn_b_h (_1, _2);
+}
+v16i16
+__lasx_xvsrarn_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrarn_h_w (_1, _2);
+}
+v8i32
+__lasx_xvsrarn_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrarn_w_d (_1, _2);
+}
+v32i8
+__lasx_xvssrarn_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrarn_b_h (_1, _2);
+}
+v16i16
+__lasx_xvssrarn_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrarn_h_w (_1, _2);
+}
+v8i32
+__lasx_xvssrarn_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrarn_w_d (_1, _2);
+}
+v32u8
+__lasx_xvssrarn_bu_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvssrarn_bu_h (_1, _2);
+}
+v16u16
+__lasx_xvssrarn_hu_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvssrarn_hu_w (_1, _2);
+}
+v8u32
+__lasx_xvssrarn_wu_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvssrarn_wu_d (_1, _2);
+}
+v32i8
+__lasx_xvsrln_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrln_b_h (_1, _2);
+}
+v16i16
+__lasx_xvsrln_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrln_h_w (_1, _2);
+}
+v8i32
+__lasx_xvsrln_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrln_w_d (_1, _2);
+}
+v32u8
+__lasx_xvssrln_bu_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvssrln_bu_h (_1, _2);
+}
+v16u16
+__lasx_xvssrln_hu_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvssrln_hu_w (_1, _2);
+}
+v8u32
+__lasx_xvssrln_wu_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvssrln_wu_d (_1, _2);
+}
+v32i8
+__lasx_xvsrlrn_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrlrn_b_h (_1, _2);
+}
+v16i16
+__lasx_xvsrlrn_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrlrn_h_w (_1, _2);
+}
+v8i32
+__lasx_xvsrlrn_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrlrn_w_d (_1, _2);
+}
+v32u8
+__lasx_xvssrlrn_bu_h (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvssrlrn_bu_h (_1, _2);
+}
+v16u16
+__lasx_xvssrlrn_hu_w (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvssrlrn_hu_w (_1, _2);
+}
+v8u32
+__lasx_xvssrlrn_wu_d (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvssrlrn_wu_d (_1, _2);
+}
+v32i8
+__lasx_xvfrstpi_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvfrstpi_b (_1, _2, 1);
+}
+v16i16
+__lasx_xvfrstpi_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvfrstpi_h (_1, _2, 1);
+}
+v32i8
+__lasx_xvfrstp_b (v32i8 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvfrstp_b (_1, _2, _3);
+}
+v16i16
+__lasx_xvfrstp_h (v16i16 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvfrstp_h (_1, _2, _3);
+}
+v4i64
+__lasx_xvshuf4i_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvshuf4i_d (_1, _2, 1);
+}
+v32i8
+__lasx_xvbsrl_v (v32i8 _1)
+{
+ return __builtin_lasx_xvbsrl_v (_1, 1);
+}
+v32i8
+__lasx_xvbsll_v (v32i8 _1)
+{
+ return __builtin_lasx_xvbsll_v (_1, 1);
+}
+v32i8
+__lasx_xvextrins_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvextrins_b (_1, _2, 1);
+}
+v16i16
+__lasx_xvextrins_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvextrins_h (_1, _2, 1);
+}
+v8i32
+__lasx_xvextrins_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvextrins_w (_1, _2, 1);
+}
+v4i64
+__lasx_xvextrins_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvextrins_d (_1, _2, 1);
+}
+v32i8
+__lasx_xvmskltz_b (v32i8 _1)
+{
+ return __builtin_lasx_xvmskltz_b (_1);
+}
+v16i16
+__lasx_xvmskltz_h (v16i16 _1)
+{
+ return __builtin_lasx_xvmskltz_h (_1);
+}
+v8i32
+__lasx_xvmskltz_w (v8i32 _1)
+{
+ return __builtin_lasx_xvmskltz_w (_1);
+}
+v4i64
+__lasx_xvmskltz_d (v4i64 _1)
+{
+ return __builtin_lasx_xvmskltz_d (_1);
+}
+v32i8
+__lasx_xvsigncov_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsigncov_b (_1, _2);
+}
+v16i16
+__lasx_xvsigncov_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsigncov_h (_1, _2);
+}
+v8i32
+__lasx_xvsigncov_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsigncov_w (_1, _2);
+}
+v4i64
+__lasx_xvsigncov_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsigncov_d (_1, _2);
+}
+v8f32
+__lasx_xvfmadd_s (v8f32 _1, v8f32 _2, v8f32 _3)
+{
+ return __builtin_lasx_xvfmadd_s (_1, _2, _3);
+}
+v4f64
+__lasx_xvfmadd_d (v4f64 _1, v4f64 _2, v4f64 _3)
+{
+ return __builtin_lasx_xvfmadd_d (_1, _2, _3);
+}
+v8f32
+__lasx_xvfmsub_s (v8f32 _1, v8f32 _2, v8f32 _3)
+{
+ return __builtin_lasx_xvfmsub_s (_1, _2, _3);
+}
+v4f64
+__lasx_xvfmsub_d (v4f64 _1, v4f64 _2, v4f64 _3)
+{
+ return __builtin_lasx_xvfmsub_d (_1, _2, _3);
+}
+v8f32
+__lasx_xvfnmadd_s (v8f32 _1, v8f32 _2, v8f32 _3)
+{
+ return __builtin_lasx_xvfnmadd_s (_1, _2, _3);
+}
+v4f64
+__lasx_xvfnmadd_d (v4f64 _1, v4f64 _2, v4f64 _3)
+{
+ return __builtin_lasx_xvfnmadd_d (_1, _2, _3);
+}
+v8f32
+__lasx_xvfnmsub_s (v8f32 _1, v8f32 _2, v8f32 _3)
+{
+ return __builtin_lasx_xvfnmsub_s (_1, _2, _3);
+}
+v4f64
+__lasx_xvfnmsub_d (v4f64 _1, v4f64 _2, v4f64 _3)
+{
+ return __builtin_lasx_xvfnmsub_d (_1, _2, _3);
+}
+v8i32
+__lasx_xvftintrne_w_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrne_w_s (_1);
+}
+v4i64
+__lasx_xvftintrne_l_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftintrne_l_d (_1);
+}
+v8i32
+__lasx_xvftintrp_w_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrp_w_s (_1);
+}
+v4i64
+__lasx_xvftintrp_l_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftintrp_l_d (_1);
+}
+v8i32
+__lasx_xvftintrm_w_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrm_w_s (_1);
+}
+v4i64
+__lasx_xvftintrm_l_d (v4f64 _1)
+{
+ return __builtin_lasx_xvftintrm_l_d (_1);
+}
+v8i32
+__lasx_xvftint_w_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvftint_w_d (_1, _2);
+}
+v8f32
+__lasx_xvffint_s_l (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvffint_s_l (_1, _2);
+}
+v8i32
+__lasx_xvftintrz_w_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvftintrz_w_d (_1, _2);
+}
+v8i32
+__lasx_xvftintrp_w_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvftintrp_w_d (_1, _2);
+}
+v8i32
+__lasx_xvftintrm_w_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvftintrm_w_d (_1, _2);
+}
+v8i32
+__lasx_xvftintrne_w_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvftintrne_w_d (_1, _2);
+}
+v4i64
+__lasx_xvftinth_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftinth_l_s (_1);
+}
+v4i64
+__lasx_xvftintl_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintl_l_s (_1);
+}
+v4f64
+__lasx_xvffinth_d_w (v8i32 _1)
+{
+ return __builtin_lasx_xvffinth_d_w (_1);
+}
+v4f64
+__lasx_xvffintl_d_w (v8i32 _1)
+{
+ return __builtin_lasx_xvffintl_d_w (_1);
+}
+v4i64
+__lasx_xvftintrzh_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrzh_l_s (_1);
+}
+v4i64
+__lasx_xvftintrzl_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrzl_l_s (_1);
+}
+v4i64
+__lasx_xvftintrph_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrph_l_s (_1);
+}
+v4i64
+__lasx_xvftintrpl_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrpl_l_s (_1);
+}
+v4i64
+__lasx_xvftintrmh_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrmh_l_s (_1);
+}
+v4i64
+__lasx_xvftintrml_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrml_l_s (_1);
+}
+v4i64
+__lasx_xvftintrneh_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrneh_l_s (_1);
+}
+v4i64
+__lasx_xvftintrnel_l_s (v8f32 _1)
+{
+ return __builtin_lasx_xvftintrnel_l_s (_1);
+}
+v8f32
+__lasx_xvfrintrne_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrintrne_s (_1);
+}
+v4f64
+__lasx_xvfrintrne_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrintrne_d (_1);
+}
+v8f32
+__lasx_xvfrintrz_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrintrz_s (_1);
+}
+v4f64
+__lasx_xvfrintrz_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrintrz_d (_1);
+}
+v8f32
+__lasx_xvfrintrp_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrintrp_s (_1);
+}
+v4f64
+__lasx_xvfrintrp_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrintrp_d (_1);
+}
+v8f32
+__lasx_xvfrintrm_s (v8f32 _1)
+{
+ return __builtin_lasx_xvfrintrm_s (_1);
+}
+v4f64
+__lasx_xvfrintrm_d (v4f64 _1)
+{
+ return __builtin_lasx_xvfrintrm_d (_1);
+}
+v32i8
+__lasx_xvld (void *_1)
+{
+ return __builtin_lasx_xvld (_1, 1);
+}
+void
+__lasx_xvst (v32i8 _1, void *_2)
+{
+ return __builtin_lasx_xvst (_1, _2, 1);
+}
+void
+__lasx_xvstelm_b (v32i8 _1, void *_2)
+{
+ return __builtin_lasx_xvstelm_b (_1, _2, 1, 1);
+}
+void
+__lasx_xvstelm_h (v16i16 _1, void *_2)
+{
+ return __builtin_lasx_xvstelm_h (_1, _2, 2, 1);
+}
+void
+__lasx_xvstelm_w (v8i32 _1, void *_2)
+{
+ return __builtin_lasx_xvstelm_w (_1, _2, 4, 1);
+}
+void
+__lasx_xvstelm_d (v4i64 _1, void *_2)
+{
+ return __builtin_lasx_xvstelm_d (_1, _2, 8, 1);
+}
+v8i32
+__lasx_xvinsve0_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvinsve0_w (_1, _2, 1);
+}
+v4i64
+__lasx_xvinsve0_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvinsve0_d (_1, _2, 1);
+}
+v8i32
+__lasx_xvpickve_w (v8i32 _1)
+{
+ return __builtin_lasx_xvpickve_w (_1, 1);
+}
+v4i64
+__lasx_xvpickve_d (v4i64 _1)
+{
+ return __builtin_lasx_xvpickve_d (_1, 1);
+}
+v32i8
+__lasx_xvssrlrn_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrlrn_b_h (_1, _2);
+}
+v16i16
+__lasx_xvssrlrn_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrlrn_h_w (_1, _2);
+}
+v8i32
+__lasx_xvssrlrn_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrlrn_w_d (_1, _2);
+}
+v32i8
+__lasx_xvssrln_b_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrln_b_h (_1, _2);
+}
+v16i16
+__lasx_xvssrln_h_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrln_h_w (_1, _2);
+}
+v8i32
+__lasx_xvssrln_w_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrln_w_d (_1, _2);
+}
+v32i8
+__lasx_xvorn_v (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvorn_v (_1, _2);
+}
+v4i64
+__lasx_xvldi ()
+{
+ return __builtin_lasx_xvldi (1);
+}
+v32i8
+__lasx_xvldx (void *_1)
+{
+ return __builtin_lasx_xvldx (_1, 1);
+}
+void
+__lasx_xvstx (v32i8 _1, void *_2)
+{
+ return __builtin_lasx_xvstx (_1, _2, 1);
+}
+v4u64
+__lasx_xvextl_qu_du (v4u64 _1)
+{
+ return __builtin_lasx_xvextl_qu_du (_1);
+}
+v8i32
+__lasx_xvinsgr2vr_w (v8i32 _1)
+{
+ return __builtin_lasx_xvinsgr2vr_w (_1, 1, 1);
+}
+v4i64
+__lasx_xvinsgr2vr_d (v4i64 _1)
+{
+ return __builtin_lasx_xvinsgr2vr_d (_1, 1, 1);
+}
+v32i8
+__lasx_xvreplve0_b (v32i8 _1)
+{
+ return __builtin_lasx_xvreplve0_b (_1);
+}
+v16i16
+__lasx_xvreplve0_h (v16i16 _1)
+{
+ return __builtin_lasx_xvreplve0_h (_1);
+}
+v8i32
+__lasx_xvreplve0_w (v8i32 _1)
+{
+ return __builtin_lasx_xvreplve0_w (_1);
+}
+v4i64
+__lasx_xvreplve0_d (v4i64 _1)
+{
+ return __builtin_lasx_xvreplve0_d (_1);
+}
+v32i8
+__lasx_xvreplve0_q (v32i8 _1)
+{
+ return __builtin_lasx_xvreplve0_q (_1);
+}
+v16i16
+__lasx_vext2xv_h_b (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_h_b (_1);
+}
+v8i32
+__lasx_vext2xv_w_h (v16i16 _1)
+{
+ return __builtin_lasx_vext2xv_w_h (_1);
+}
+v4i64
+__lasx_vext2xv_d_w (v8i32 _1)
+{
+ return __builtin_lasx_vext2xv_d_w (_1);
+}
+v8i32
+__lasx_vext2xv_w_b (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_w_b (_1);
+}
+v4i64
+__lasx_vext2xv_d_h (v16i16 _1)
+{
+ return __builtin_lasx_vext2xv_d_h (_1);
+}
+v4i64
+__lasx_vext2xv_d_b (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_d_b (_1);
+}
+v16i16
+__lasx_vext2xv_hu_bu (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_hu_bu (_1);
+}
+v8i32
+__lasx_vext2xv_wu_hu (v16i16 _1)
+{
+ return __builtin_lasx_vext2xv_wu_hu (_1);
+}
+v4i64
+__lasx_vext2xv_du_wu (v8i32 _1)
+{
+ return __builtin_lasx_vext2xv_du_wu (_1);
+}
+v8i32
+__lasx_vext2xv_wu_bu (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_wu_bu (_1);
+}
+v4i64
+__lasx_vext2xv_du_hu (v16i16 _1)
+{
+ return __builtin_lasx_vext2xv_du_hu (_1);
+}
+v4i64
+__lasx_vext2xv_du_bu (v32i8 _1)
+{
+ return __builtin_lasx_vext2xv_du_bu (_1);
+}
+v32i8
+__lasx_xvpermi_q (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvpermi_q (_1, _2, 1);
+}
+v4i64
+__lasx_xvpermi_d (v4i64 _1)
+{
+ return __builtin_lasx_xvpermi_d (_1, 1);
+}
+v8i32
+__lasx_xvperm_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvperm_w (_1, _2);
+}
+v32i8
+__lasx_xvldrepl_b (void *_1)
+{
+ return __builtin_lasx_xvldrepl_b (_1, 1);
+}
+v16i16
+__lasx_xvldrepl_h (void *_1)
+{
+ return __builtin_lasx_xvldrepl_h (_1, 2);
+}
+v8i32
+__lasx_xvldrepl_w (void *_1)
+{
+ return __builtin_lasx_xvldrepl_w (_1, 4);
+}
+v4i64
+__lasx_xvldrepl_d (void *_1)
+{
+ return __builtin_lasx_xvldrepl_d (_1, 8);
+}
+int
+__lasx_xvpickve2gr_w (v8i32 _1)
+{
+ return __builtin_lasx_xvpickve2gr_w (_1, 1);
+}
+unsigned int
+__lasx_xvpickve2gr_wu (v8i32 _1)
+{
+ return __builtin_lasx_xvpickve2gr_wu (_1, 1);
+}
+long
+__lasx_xvpickve2gr_d (v4i64 _1)
+{
+ return __builtin_lasx_xvpickve2gr_d (_1, 1);
+}
+unsigned long int
+__lasx_xvpickve2gr_du (v4i64 _1)
+{
+ return __builtin_lasx_xvpickve2gr_du (_1, 1);
+}
+v4i64
+__lasx_xvaddwev_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvaddwev_q_d (_1, _2);
+}
+v4i64
+__lasx_xvaddwev_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvaddwev_d_w (_1, _2);
+}
+v8i32
+__lasx_xvaddwev_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvaddwev_w_h (_1, _2);
+}
+v16i16
+__lasx_xvaddwev_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvaddwev_h_b (_1, _2);
+}
+v4i64
+__lasx_xvaddwev_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvaddwev_q_du (_1, _2);
+}
+v4i64
+__lasx_xvaddwev_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvaddwev_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvaddwev_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvaddwev_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvaddwev_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvaddwev_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvsubwev_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsubwev_q_d (_1, _2);
+}
+v4i64
+__lasx_xvsubwev_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsubwev_d_w (_1, _2);
+}
+v8i32
+__lasx_xvsubwev_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsubwev_w_h (_1, _2);
+}
+v16i16
+__lasx_xvsubwev_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsubwev_h_b (_1, _2);
+}
+v4i64
+__lasx_xvsubwev_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvsubwev_q_du (_1, _2);
+}
+v4i64
+__lasx_xvsubwev_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvsubwev_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvsubwev_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvsubwev_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvsubwev_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvsubwev_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmulwev_q_d (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmulwev_d_w (_1, _2);
+}
+v8i32
+__lasx_xvmulwev_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmulwev_w_h (_1, _2);
+}
+v16i16
+__lasx_xvmulwev_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmulwev_h_b (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmulwev_q_du (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmulwev_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvmulwev_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmulwev_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvmulwev_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmulwev_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvaddwod_q_d (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvaddwod_d_w (_1, _2);
+}
+v8i32
+__lasx_xvaddwod_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvaddwod_w_h (_1, _2);
+}
+v16i16
+__lasx_xvaddwod_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvaddwod_h_b (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvaddwod_q_du (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvaddwod_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvaddwod_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvaddwod_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvaddwod_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvaddwod_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvsubwod_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsubwod_q_d (_1, _2);
+}
+v4i64
+__lasx_xvsubwod_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsubwod_d_w (_1, _2);
+}
+v8i32
+__lasx_xvsubwod_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsubwod_w_h (_1, _2);
+}
+v16i16
+__lasx_xvsubwod_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsubwod_h_b (_1, _2);
+}
+v4i64
+__lasx_xvsubwod_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvsubwod_q_du (_1, _2);
+}
+v4i64
+__lasx_xvsubwod_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvsubwod_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvsubwod_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvsubwod_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvsubwod_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvsubwod_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmulwod_q_d (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_d_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmulwod_d_w (_1, _2);
+}
+v8i32
+__lasx_xvmulwod_w_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmulwod_w_h (_1, _2);
+}
+v16i16
+__lasx_xvmulwod_h_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmulwod_h_b (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_q_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvmulwod_q_du (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_d_wu (v8u32 _1, v8u32 _2)
+{
+ return __builtin_lasx_xvmulwod_d_wu (_1, _2);
+}
+v8i32
+__lasx_xvmulwod_w_hu (v16u16 _1, v16u16 _2)
+{
+ return __builtin_lasx_xvmulwod_w_hu (_1, _2);
+}
+v16i16
+__lasx_xvmulwod_h_bu (v32u8 _1, v32u8 _2)
+{
+ return __builtin_lasx_xvmulwod_h_bu (_1, _2);
+}
+v4i64
+__lasx_xvaddwev_d_wu_w (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvaddwev_d_wu_w (_1, _2);
+}
+v8i32
+__lasx_xvaddwev_w_hu_h (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvaddwev_w_hu_h (_1, _2);
+}
+v16i16
+__lasx_xvaddwev_h_bu_b (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvaddwev_h_bu_b (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_d_wu_w (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmulwev_d_wu_w (_1, _2);
+}
+v8i32
+__lasx_xvmulwev_w_hu_h (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmulwev_w_hu_h (_1, _2);
+}
+v16i16
+__lasx_xvmulwev_h_bu_b (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmulwev_h_bu_b (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_d_wu_w (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvaddwod_d_wu_w (_1, _2);
+}
+v8i32
+__lasx_xvaddwod_w_hu_h (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvaddwod_w_hu_h (_1, _2);
+}
+v16i16
+__lasx_xvaddwod_h_bu_b (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvaddwod_h_bu_b (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_d_wu_w (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvmulwod_d_wu_w (_1, _2);
+}
+v8i32
+__lasx_xvmulwod_w_hu_h (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvmulwod_w_hu_h (_1, _2);
+}
+v16i16
+__lasx_xvmulwod_h_bu_b (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvmulwod_h_bu_b (_1, _2);
+}
+v4i64
+__lasx_xvhaddw_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvhaddw_q_d (_1, _2);
+}
+v4u64
+__lasx_xvhaddw_qu_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvhaddw_qu_du (_1, _2);
+}
+v4i64
+__lasx_xvhsubw_q_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvhsubw_q_d (_1, _2);
+}
+v4u64
+__lasx_xvhsubw_qu_du (v4u64 _1, v4u64 _2)
+{
+ return __builtin_lasx_xvhsubw_qu_du (_1, _2);
+}
+v4i64
+__lasx_xvmaddwev_q_d (v4i64 _1, v4i64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmaddwev_q_d (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwev_d_w (v4i64 _1, v8i32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmaddwev_d_w (_1, _2, _3);
+}
+v8i32
+__lasx_xvmaddwev_w_h (v8i32 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmaddwev_w_h (_1, _2, _3);
+}
+v16i16
+__lasx_xvmaddwev_h_b (v16i16 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmaddwev_h_b (_1, _2, _3);
+}
+v4u64
+__lasx_xvmaddwev_q_du (v4u64 _1, v4u64 _2, v4u64 _3)
+{
+ return __builtin_lasx_xvmaddwev_q_du (_1, _2, _3);
+}
+v4u64
+__lasx_xvmaddwev_d_wu (v4u64 _1, v8u32 _2, v8u32 _3)
+{
+ return __builtin_lasx_xvmaddwev_d_wu (_1, _2, _3);
+}
+v8u32
+__lasx_xvmaddwev_w_hu (v8u32 _1, v16u16 _2, v16u16 _3)
+{
+ return __builtin_lasx_xvmaddwev_w_hu (_1, _2, _3);
+}
+v16u16
+__lasx_xvmaddwev_h_bu (v16u16 _1, v32u8 _2, v32u8 _3)
+{
+ return __builtin_lasx_xvmaddwev_h_bu (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwod_q_d (v4i64 _1, v4i64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmaddwod_q_d (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwod_d_w (v4i64 _1, v8i32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmaddwod_d_w (_1, _2, _3);
+}
+v8i32
+__lasx_xvmaddwod_w_h (v8i32 _1, v16i16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmaddwod_w_h (_1, _2, _3);
+}
+v16i16
+__lasx_xvmaddwod_h_b (v16i16 _1, v32i8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmaddwod_h_b (_1, _2, _3);
+}
+v4u64
+__lasx_xvmaddwod_q_du (v4u64 _1, v4u64 _2, v4u64 _3)
+{
+ return __builtin_lasx_xvmaddwod_q_du (_1, _2, _3);
+}
+v4u64
+__lasx_xvmaddwod_d_wu (v4u64 _1, v8u32 _2, v8u32 _3)
+{
+ return __builtin_lasx_xvmaddwod_d_wu (_1, _2, _3);
+}
+v8u32
+__lasx_xvmaddwod_w_hu (v8u32 _1, v16u16 _2, v16u16 _3)
+{
+ return __builtin_lasx_xvmaddwod_w_hu (_1, _2, _3);
+}
+v16u16
+__lasx_xvmaddwod_h_bu (v16u16 _1, v32u8 _2, v32u8 _3)
+{
+ return __builtin_lasx_xvmaddwod_h_bu (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwev_q_du_d (v4i64 _1, v4u64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmaddwev_q_du_d (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwev_d_wu_w (v4i64 _1, v8u32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmaddwev_d_wu_w (_1, _2, _3);
+}
+v8i32
+__lasx_xvmaddwev_w_hu_h (v8i32 _1, v16u16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmaddwev_w_hu_h (_1, _2, _3);
+}
+v16i16
+__lasx_xvmaddwev_h_bu_b (v16i16 _1, v32u8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmaddwev_h_bu_b (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwod_q_du_d (v4i64 _1, v4u64 _2, v4i64 _3)
+{
+ return __builtin_lasx_xvmaddwod_q_du_d (_1, _2, _3);
+}
+v4i64
+__lasx_xvmaddwod_d_wu_w (v4i64 _1, v8u32 _2, v8i32 _3)
+{
+ return __builtin_lasx_xvmaddwod_d_wu_w (_1, _2, _3);
+}
+v8i32
+__lasx_xvmaddwod_w_hu_h (v8i32 _1, v16u16 _2, v16i16 _3)
+{
+ return __builtin_lasx_xvmaddwod_w_hu_h (_1, _2, _3);
+}
+v16i16
+__lasx_xvmaddwod_h_bu_b (v16i16 _1, v32u8 _2, v32i8 _3)
+{
+ return __builtin_lasx_xvmaddwod_h_bu_b (_1, _2, _3);
+}
+v32i8
+__lasx_xvrotr_b (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvrotr_b (_1, _2);
+}
+v16i16
+__lasx_xvrotr_h (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvrotr_h (_1, _2);
+}
+v8i32
+__lasx_xvrotr_w (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvrotr_w (_1, _2);
+}
+v4i64
+__lasx_xvrotr_d (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvrotr_d (_1, _2);
+}
+v4i64
+__lasx_xvadd_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvadd_q (_1, _2);
+}
+v4i64
+__lasx_xvsub_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsub_q (_1, _2);
+}
+v4i64
+__lasx_xvaddwev_q_du_d (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvaddwev_q_du_d (_1, _2);
+}
+v4i64
+__lasx_xvaddwod_q_du_d (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvaddwod_q_du_d (_1, _2);
+}
+v4i64
+__lasx_xvmulwev_q_du_d (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmulwev_q_du_d (_1, _2);
+}
+v4i64
+__lasx_xvmulwod_q_du_d (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvmulwod_q_du_d (_1, _2);
+}
+v32i8
+__lasx_xvmskgez_b (v32i8 _1)
+{
+ return __builtin_lasx_xvmskgez_b (_1);
+}
+v32i8
+__lasx_xvmsknz_b (v32i8 _1)
+{
+ return __builtin_lasx_xvmsknz_b (_1);
+}
+v16i16
+__lasx_xvexth_h_b (v32i8 _1)
+{
+ return __builtin_lasx_xvexth_h_b (_1);
+}
+v8i32
+__lasx_xvexth_w_h (v16i16 _1)
+{
+ return __builtin_lasx_xvexth_w_h (_1);
+}
+v4i64
+__lasx_xvexth_d_w (v8i32 _1)
+{
+ return __builtin_lasx_xvexth_d_w (_1);
+}
+v4i64
+__lasx_xvexth_q_d (v4i64 _1)
+{
+ return __builtin_lasx_xvexth_q_d (_1);
+}
+v16u16
+__lasx_xvexth_hu_bu (v32u8 _1)
+{
+ return __builtin_lasx_xvexth_hu_bu (_1);
+}
+v8u32
+__lasx_xvexth_wu_hu (v16u16 _1)
+{
+ return __builtin_lasx_xvexth_wu_hu (_1);
+}
+v4u64
+__lasx_xvexth_du_wu (v8u32 _1)
+{
+ return __builtin_lasx_xvexth_du_wu (_1);
+}
+v4u64
+__lasx_xvexth_qu_du (v4u64 _1)
+{
+ return __builtin_lasx_xvexth_qu_du (_1);
+}
+v32i8
+__lasx_xvrotri_b (v32i8 _1)
+{
+ return __builtin_lasx_xvrotri_b (_1, 1);
+}
+v16i16
+__lasx_xvrotri_h (v16i16 _1)
+{
+ return __builtin_lasx_xvrotri_h (_1, 1);
+}
+v8i32
+__lasx_xvrotri_w (v8i32 _1)
+{
+ return __builtin_lasx_xvrotri_w (_1, 1);
+}
+v4i64
+__lasx_xvrotri_d (v4i64 _1)
+{
+ return __builtin_lasx_xvrotri_d (_1, 1);
+}
+v4i64
+__lasx_xvextl_q_d (v4i64 _1)
+{
+ return __builtin_lasx_xvextl_q_d (_1);
+}
+v32i8
+__lasx_xvsrlni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrlni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvsrlni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrlni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvsrlni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrlni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvsrlni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrlni_d_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvsrlrni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrlrni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvsrlrni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrlrni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvsrlrni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrlrni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvsrlrni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrlrni_d_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvssrlni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrlni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvssrlni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrlni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvssrlni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrlni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvssrlni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrlni_d_q (_1, _2, 1);
+}
+v32u8
+__lasx_xvssrlni_bu_h (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrlni_bu_h (_1, _2, 1);
+}
+v16u16
+__lasx_xvssrlni_hu_w (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrlni_hu_w (_1, _2, 1);
+}
+v8u32
+__lasx_xvssrlni_wu_d (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrlni_wu_d (_1, _2, 1);
+}
+v4u64
+__lasx_xvssrlni_du_q (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrlni_du_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvssrlrni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrlrni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvssrlrni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrlrni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvssrlrni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrlrni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvssrlrni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrlrni_d_q (_1, _2, 1);
+}
+v32u8
+__lasx_xvssrlrni_bu_h (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrlrni_bu_h (_1, _2, 1);
+}
+v16u16
+__lasx_xvssrlrni_hu_w (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrlrni_hu_w (_1, _2, 1);
+}
+v8u32
+__lasx_xvssrlrni_wu_d (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrlrni_wu_d (_1, _2, 1);
+}
+v4u64
+__lasx_xvssrlrni_du_q (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrlrni_du_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvsrani_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrani_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvsrani_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrani_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvsrani_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrani_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvsrani_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrani_d_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvsrarni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvsrarni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvsrarni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvsrarni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvsrarni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvsrarni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvsrarni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvsrarni_d_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvssrani_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrani_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvssrani_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrani_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvssrani_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrani_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvssrani_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrani_d_q (_1, _2, 1);
+}
+v32u8
+__lasx_xvssrani_bu_h (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrani_bu_h (_1, _2, 1);
+}
+v16u16
+__lasx_xvssrani_hu_w (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrani_hu_w (_1, _2, 1);
+}
+v8u32
+__lasx_xvssrani_wu_d (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrani_wu_d (_1, _2, 1);
+}
+v4u64
+__lasx_xvssrani_du_q (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrani_du_q (_1, _2, 1);
+}
+v32i8
+__lasx_xvssrarni_b_h (v32i8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrarni_b_h (_1, _2, 1);
+}
+v16i16
+__lasx_xvssrarni_h_w (v16i16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrarni_h_w (_1, _2, 1);
+}
+v8i32
+__lasx_xvssrarni_w_d (v8i32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrarni_w_d (_1, _2, 1);
+}
+v4i64
+__lasx_xvssrarni_d_q (v4i64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrarni_d_q (_1, _2, 1);
+}
+v32u8
+__lasx_xvssrarni_bu_h (v32u8 _1, v32i8 _2)
+{
+ return __builtin_lasx_xvssrarni_bu_h (_1, _2, 1);
+}
+v16u16
+__lasx_xvssrarni_hu_w (v16u16 _1, v16i16 _2)
+{
+ return __builtin_lasx_xvssrarni_hu_w (_1, _2, 1);
+}
+v8u32
+__lasx_xvssrarni_wu_d (v8u32 _1, v8i32 _2)
+{
+ return __builtin_lasx_xvssrarni_wu_d (_1, _2, 1);
+}
+v4u64
+__lasx_xvssrarni_du_q (v4u64 _1, v4i64 _2)
+{
+ return __builtin_lasx_xvssrarni_du_q (_1, _2, 1);
+}
+int
+__lasx_xbnz_b (v32u8 _1)
+{
+ return __builtin_lasx_xbnz_b (_1);
+}
+int
+__lasx_xbnz_d (v4u64 _1)
+{
+ return __builtin_lasx_xbnz_d (_1);
+}
+int
+__lasx_xbnz_h (v16u16 _1)
+{
+ return __builtin_lasx_xbnz_h (_1);
+}
+int
+__lasx_xbnz_v (v32u8 _1)
+{
+ return __builtin_lasx_xbnz_v (_1);
+}
+int
+__lasx_xbnz_w (v8u32 _1)
+{
+ return __builtin_lasx_xbnz_w (_1);
+}
+int
+__lasx_xbz_b (v32u8 _1)
+{
+ return __builtin_lasx_xbz_b (_1);
+}
+int
+__lasx_xbz_d (v4u64 _1)
+{
+ return __builtin_lasx_xbz_d (_1);
+}
+int
+__lasx_xbz_h (v16u16 _1)
+{
+ return __builtin_lasx_xbz_h (_1);
+}
+int
+__lasx_xbz_v (v32u8 _1)
+{
+ return __builtin_lasx_xbz_v (_1);
+}
+int
+__lasx_xbz_w (v8u32 _1)
+{
+ return __builtin_lasx_xbz_w (_1);
+}
+v4i64
+__lasx_xvfcmp_caf_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_caf_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_caf_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_caf_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_ceq_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_ceq_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_ceq_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_ceq_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cle_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cle_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cle_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cle_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_clt_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_clt_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_clt_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_clt_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cne_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cne_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cne_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cne_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cor_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cor_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cor_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cor_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cueq_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cueq_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cueq_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cueq_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cule_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cule_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cule_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cule_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cult_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cult_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cult_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cult_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cun_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cun_d (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_cune_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_cune_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cune_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cune_s (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_cun_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_cun_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_saf_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_saf_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_saf_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_saf_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_seq_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_seq_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_seq_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_seq_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sle_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sle_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sle_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sle_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_slt_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_slt_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_slt_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_slt_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sne_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sne_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sne_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sne_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sor_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sor_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sor_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sor_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sueq_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sueq_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sueq_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sueq_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sule_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sule_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sule_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sule_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sult_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sult_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sult_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sult_s (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sun_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sun_d (_1, _2);
+}
+v4i64
+__lasx_xvfcmp_sune_d (v4f64 _1, v4f64 _2)
+{
+ return __builtin_lasx_xvfcmp_sune_d (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sune_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sune_s (_1, _2);
+}
+v8i32
+__lasx_xvfcmp_sun_s (v8f32 _1, v8f32 _2)
+{
+ return __builtin_lasx_xvfcmp_sun_s (_1, _2);
+}
+v4f64
+__lasx_xvpickve_d_f (v4f64 _1)
+{
+ return __builtin_lasx_xvpickve_d_f (_1, 1);
+}
+v8f32
+__lasx_xvpickve_w_f (v8f32 _1)
+{
+ return __builtin_lasx_xvpickve_w_f (_1, 1);
+}
+v32i8
+__lasx_xvrepli_b ()
+{
+ return __builtin_lasx_xvrepli_b (1);
+}
+v4i64
+__lasx_xvrepli_d ()
+{
+ return __builtin_lasx_xvrepli_d (1);
+}
+v16i16
+__lasx_xvrepli_h ()
+{
+ return __builtin_lasx_xvrepli_h (1);
+}
+v8i32
+__lasx_xvrepli_w ()
+{
+ return __builtin_lasx_xvrepli_w (1);
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c
new file mode 100644
index 0000000..41fae32
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-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]) = 0x34598d0fd19314cb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1820939b2280fa86;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4a1c269b8e892a3a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x063f2bb758abc664;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffc0fcffffcf83;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000288a00003c1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x3459730f2f6d1435;
+ *((unsigned long *)&__m256i_result[2]) = 0x19212d61237f2b03;
+ *((unsigned long *)&__m256i_result[1]) = 0x4a1c266572772a3a;
+ *((unsigned long *)&__m256i_result[0]) = 0x063f032d58557648;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 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_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001504f4c4b2361;
+ *((unsigned long *)&__m256i_result[2]) = 0x303338a48f374969;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001504f4c4b2361;
+ *((unsigned long *)&__m256i_result[0]) = 0x303338a48f374969;
+ __m256i_out = __lasx_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x807c7fffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80817fff00810000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x807c7fffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80817fff00810000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x80767f0101050101;
+ *((unsigned long *)&__m256i_result[2]) = 0x80817f01007f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x80767f0101050101;
+ *((unsigned long *)&__m256i_result[0]) = 0x80817f01007f0000;
+ __m256i_out = __lasx_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x437fe01fe01fe020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x437fe01fe01fe020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x037fe01f001fe020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x037fe01f001fe020;
+ *((unsigned long *)&__m256i_result[3]) = 0x437f201f201f2020;
+ *((unsigned long *)&__m256i_result[2]) = 0x037f201f001f2020;
+ *((unsigned long *)&__m256i_result[1]) = 0x437f201f201f2020;
+ *((unsigned long *)&__m256i_result[0]) = 0x037f201f001f2020;
+ __m256i_out = __lasx_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1f60010000080100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1f60010000080100;
+ __m256i_out = __lasx_xvabsd_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvabsd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000002780;
+ *((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]) = 0x0000010100020103;
+ *((unsigned long *)&__m256i_result[2]) = 0x040f040f040b236d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000010100020103;
+ *((unsigned long *)&__m256i_result[0]) = 0x040f040f040b236d;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100010080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100010080;
+ __m256i_out = __lasx_xvabsd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000073333333;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000073333333;
+ *((unsigned long *)&__m256i_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]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000073333333;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000073333333;
+ __m256i_out = __lasx_xvabsd_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]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000040c100000101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000040c100000101;
+ *((unsigned long *)&__m256i_result[3]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_result[2]) = 0x000040c100000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_result[0]) = 0x000040c100000101;
+ __m256i_out = __lasx_xvabsd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01ffff4300fffeff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfe0000bcff000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01ffff4300fffeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfe0000bcff000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x81ff00bd80ff0101;
+ *((unsigned long *)&__m256i_result[2]) = 0x01ff00bd00ff0101;
+ *((unsigned long *)&__m256i_result[1]) = 0x81ff00bd80ff0101;
+ *((unsigned long *)&__m256i_result[0]) = 0x01ff00bd00ff0101;
+ __m256i_out = __lasx_xvabsd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003fea00013feb;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fe900014022;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003fea00013feb;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe900014022;
+ __m256i_out = __lasx_xvabsd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0cc08723ff900001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xcc9b89f2f6cef440;
+ *((unsigned long *)&__m256i_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]) = 0x0cc08723006fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x3364760e09310bc0;
+ __m256i_out = __lasx_xvabsd_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvabsd_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]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000017f0000017f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000017f0000017f;
+ __m256i_out = __lasx_xvabsd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbf800000bf800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd662fa0000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbf800000bf800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd6ef750000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x417e01f040800000;
+ *((unsigned long *)&__m256i_result[2]) = 0x299d060000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x417e01f040800000;
+ *((unsigned long *)&__m256i_result[0]) = 0x29108b0000000000;
+ __m256i_out = __lasx_xvabsd_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]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001700170017;
+ __m256i_out = __lasx_xvabsd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x000100010485048a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0005ff870005ff86;
+ *((unsigned long *)&__m256i_result[1]) = 0x000100010485048a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0005ff870005ff86;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvabsd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400100004001;
+ __m256i_out = __lasx_xvabsd_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]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000200000000;
+ __m256i_out = __lasx_xvabsd_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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvabsd_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-xvabsd-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c
new file mode 100644
index 0000000..bd7a906
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c
@@ -0,0 +1,650 @@
+/* { 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]) = 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_xvabsd_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000001010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000001010000;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000100010485048a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0005ff870005ff86;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000100010485048a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0005ff870005ff86;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffa0065fffa0066;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffa0065fffa0066;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_bu (__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]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvabsd_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvabsd_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x400040003abf4000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x400040003abf4000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000003fff3fff;
+ __m256i_out = __lasx_xvabsd_hu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff80800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0408040800008003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x04080408fff87803;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_result[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[0]) = 0xf9f9f9f9f9f9f9f9;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0001;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff0101fd00010100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff0101fd00010100;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff0101fd00010100;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff0101fd00010100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvabsd_hu (__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]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffff5fff7;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffff5fff7;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001010000;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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_xvabsd_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]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001400000014;
+ __m256i_out = __lasx_xvabsd_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]) = 0xfbba01c0003f7e3f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfbd884e7003f7e3f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff874dc687870000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfbba01c0003f7e3f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_result[1]) = 0xfbd884e7003f7e3f;
+ *((unsigned long *)&__m256i_result[0]) = 0xff874dc687870000;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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_xvabsd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x800000007fff0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x80000000ff7f0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x800000007fff0001;
+ *((unsigned long *)&__m256i_result[0]) = 0x80000000ff7f0001;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_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]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01fe01fe01fe;
+ __m256i_out = __lasx_xvabsd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000080040;
+ __m256i_out = __lasx_xvabsd_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffe;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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_xvabsd_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvabsd_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00040000;
+ __m256i_out = __lasx_xvabsd_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3f0000400d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f0000400d;
+ __m256i_out = __lasx_xvabsd_du (__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]) = 0xffffffffffffff88;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe98;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
+ __m256i_out = __lasx_xvabsd_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_xvabsd_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_xvabsd_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f80ffffff808000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f80ffffff808000;
+ *((unsigned long *)&__m256i_result[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f0000007f7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f0000007f7fff;
+ __m256i_out = __lasx_xvabsd_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-xvadd.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadd.c
new file mode 100644
index 0000000..2932957
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadd.c
@@ -0,0 +1,725 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvadd_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_xvadd_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvadd_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefefffffefe;
+ __m256i_out = __lasx_xvadd_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x41cfe01dde000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x41cfe01dde000000;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x41cfe01dde000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x41cfe01dde000000;
+ __m256i_out = __lasx_xvadd_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]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000040;
+ __m256i_out = __lasx_xvadd_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_xvadd_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_xvadd_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_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffefffefffefffe;
+ __m256i_out = __lasx_xvadd_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_xvadd_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]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvadd_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_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f8000007f800000;
+ *((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]) = 0x7f8000007f7fffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f8000007f7fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f8000007f7fffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f8000007f7fffff;
+ __m256i_out = __lasx_xvadd_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]) = 0xfffffff900000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff900000800;
+ __m256i_out = __lasx_xvadd_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvadd_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]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_result[2]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_result[0]) = 0x00e9a80014ff0000;
+ __m256i_out = __lasx_xvadd_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_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000956a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000956a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xb500000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xb500000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x007fffffffff9569;
+ *((unsigned long *)&__m256i_result[2]) = 0xb50000004efffe00;
+ *((unsigned long *)&__m256i_result[1]) = 0x007fffffffff9569;
+ *((unsigned long *)&__m256i_result[0]) = 0xb50000004efffe00;
+ __m256i_out = __lasx_xvadd_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]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff01;
+ __m256i_out = __lasx_xvadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x06f880008000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080008000b8f1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000010180000101;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfa08800080000101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x800080008000480f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001010000010100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101000000010100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000000010100;
+ __m256i_out = __lasx_xvadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ffffffffff605a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ffffffffff605a;
+ *((unsigned long *)&__m256i_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]) = 0x00ffffffffff605a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ffffffffff605a;
+ __m256i_out = __lasx_xvadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op0[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op0[1]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op0[0]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_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]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_result[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_result[1]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_result[0]) = 0x55555555aaaaaaac;
+ __m256i_out = __lasx_xvadd_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]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000089;
+ __m256i_out = __lasx_xvadd_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_xvadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000014402080144;
+ __m256i_out = __lasx_xvadd_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]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000008;
+ __m256i_out = __lasx_xvadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_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]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202010202020102;
+ __m256i_out = __lasx_xvadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000807e7ffe;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[2]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[0]) = 0xc2c2c2c2c2c2c2c2;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_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]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f807f007f7f817f;
+ __m256i_out = __lasx_xvadd_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_xvadd_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]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000006040190d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000006040190d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800200028;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvadd_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_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_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d0005;
+ __m256i_out = __lasx_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000c0000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020001f001f001e;
+ *((unsigned long *)&__m256i_result[2]) = 0x001f001fc01f001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020001f001f001e;
+ *((unsigned long *)&__m256i_result[0]) = 0x001f001f401f001f;
+ __m256i_out = __lasx_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff00000000;
+ *((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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7ffeffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7ffeffffffff;
+ __m256i_out = __lasx_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_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]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800000ff800000ff;
+ __m256i_out = __lasx_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000080040;
+ __m256i_out = __lasx_xvadd_q (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffeffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffeffff0000;
+ __m256i_out = __lasx_xvadd_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadda.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadda.c
new file mode 100644
index 0000000..d6b57d1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvadda.c
@@ -0,0 +1,785 @@
+/* { 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]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101008000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101008000000080;
+ __m256i_out = __lasx_xvadda_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000402000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000402000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000402000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000402000000;
+ __m256i_out = __lasx_xvadda_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffeffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100010102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadda_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]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadda_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xefefefefefefefef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xefefefefefefefef;
+ *((unsigned long *)&__m256i_op0[1]) = 0xefefefefefefef6e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xeeeeeeeeeeeeeeee;
+ *((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]) = 0x1010101010101012;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101012;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101093;
+ *((unsigned long *)&__m256i_result[0]) = 0x1111111111111113;
+ __m256i_out = __lasx_xvadda_d (__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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0110000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0110000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0110000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0110000000000080;
+ __m256i_out = __lasx_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1000000000000000;
+ __m256i_out = __lasx_xvadda_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1fe01e0000000000;
+ *((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]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadda_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]) = 0xce7ffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xce7ffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x327f010101010102;
+ *((unsigned long *)&__m256i_result[2]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x327f010101010102;
+ *((unsigned long *)&__m256i_result[0]) = 0x6300000000000000;
+ __m256i_out = __lasx_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff5556aaaa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff5556aaaa;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00020000aaa95556;
+ *((unsigned long *)&__m256i_result[1]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00020000aaa95556;
+ __m256i_out = __lasx_xvadda_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((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]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadda_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvadda_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_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9a7f997fff01ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbe632a4f1c3c5653;
+ *((unsigned long *)&__m256i_result[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_result[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_result[0]) = 0x419cd5b11c3c5654;
+ __m256i_out = __lasx_xvadda_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x017e01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0586060601fe0202;
+ *((unsigned long *)&__m256i_op0[1]) = 0x017e01fe01fe0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0586060601fe0004;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0010001000100001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010001000100001;
+ *((unsigned long *)&__m256i_result[3]) = 0x017f01fe01ff01fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x05960616020e0203;
+ *((unsigned long *)&__m256i_result[1]) = 0x017f01fe01ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x05960616020e0005;
+ __m256i_out = __lasx_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d0005;
+ *((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]) = 0x0101010101010146;
+ *((unsigned long *)&__m256i_result[2]) = 0x01010101010e0106;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010146;
+ *((unsigned long *)&__m256i_result[0]) = 0x01010101010e0106;
+ __m256i_out = __lasx_xvadda_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010000000100000;
+ __m256i_out = __lasx_xvadda_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_xvadda_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_xvadda_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_xvadda_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]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010486048c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010486048c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000006;
+ __m256i_out = __lasx_xvadda_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]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020000;
+ __m256i_out = __lasx_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00010001000c4411;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100044411;
+ __m256i_out = __lasx_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000018;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000019;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000200000001e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000019;
+ *((unsigned long *)&__m256i_op1[3]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3870ca8d013e76a0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43ec0a1b2aba7ed0;
+ *((unsigned long *)&__m256i_result[3]) = 0x223d771060c77e19;
+ *((unsigned long *)&__m256i_result[2]) = 0x3870caad013e76b9;
+ *((unsigned long *)&__m256i_result[1]) = 0x223d771060c81cc7;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ec0a3b2aba7ee9;
+ __m256i_out = __lasx_xvadda_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_xvadda_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_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]) = 0x2535253514141414;
+ *((unsigned long *)&__m256i_result[2]) = 0x2535253500002535;
+ *((unsigned long *)&__m256i_result[1]) = 0x2535253514141414;
+ *((unsigned long *)&__m256i_result[0]) = 0x2535253500002535;
+ __m256i_out = __lasx_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_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]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010000f0000000f;
+ __m256i_out = __lasx_xvadda_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_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000504f00002361;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff8f81000040e4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000504f00002361;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff8f81000040e4;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000007ff000007ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000007ff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000007ff000007ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000007ff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000584e00002b60;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000787dffffbf1c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000584e00002b60;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000787dffffbf1c;
+ __m256i_out = __lasx_xvadda_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]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010200000000;
+ __m256i_out = __lasx_xvadda_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]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fef010000010100;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fef010000010100;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fef010000010100;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fef010000010100;
+ __m256i_out = __lasx_xvadda_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_xvadda_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_xvadda_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_xvadda_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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadda_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40b2bf4d30313031;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fffa2bea2be;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40b2bf4d30313031;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fffa2bea2be;
+ *((unsigned long *)&__m256i_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]) = 0x40b240b330313031;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff5d425d42;
+ *((unsigned long *)&__m256i_result[1]) = 0x40b240b330313031;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff5d425d42;
+ __m256i_out = __lasx_xvadda_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_xvadda_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_xvadda_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((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_xvadda_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000100040;
+ __m256i_out = __lasx_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000100080;
+ __m256i_out = __lasx_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff896099cbdbfff1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc987ffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff896099cbdbfff1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc987ffffffffffff;
+ *((unsigned long *)&__m256i_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]) = 0x00769f673424000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x3678000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00769f673424000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x3678000100000001;
+ __m256i_out = __lasx_xvadda_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvadda_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_xvadda_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvadda_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvadda_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_xvadda_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_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]) = 0x0000000500000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000700000032;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000500000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000700000032;
+ __m256i_out = __lasx_xvadda_w (__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]) = 0x00003feec0108022;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fe9c015802c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003feec0108022;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fe9c015802c;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007f124010c022;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f174015c02c;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f124010c022;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f174015c02c;
+ __m256i_out = __lasx_xvadda_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x05ea05ea05ea05ec;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x05ea05ea05ea05ec;
+ __m256i_out = __lasx_xvadda_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020202020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020202020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000000010000;
+ __m256i_out = __lasx_xvadda_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-xvaddi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddi.c
new file mode 100644
index 0000000..054bf6e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddi.c
@@ -0,0 +1,427 @@
+/* { 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]) = 0x44bb2cd3a35c2fd0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xca355ba46a95e31c;
+ *((unsigned long *)&__m256i_result[3]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_result[2]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_result[1]) = 0x61d849f0c0794ced;
+ *((unsigned long *)&__m256i_result[0]) = 0xe75278c187b20039;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe651bfff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_result[2]) = 0x1d1d1d1ddd9d9d1d;
+ *((unsigned long *)&__m256i_result[1]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_result[0]) = 0x1d1d1d1d046fdd1d;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_result[2]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_result[1]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_result[0]) = 0x1515151515151515;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1818181818181818;
+ *((unsigned long *)&__m256i_result[2]) = 0x1818181818181818;
+ *((unsigned long *)&__m256i_result[1]) = 0x1818181818181818;
+ *((unsigned long *)&__m256i_result[0]) = 0x1818181818181818;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202810102020202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202810102020202;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[2]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[1]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[0]) = 0x0909090909090909;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ffce20;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ffce20;
+ *((unsigned long *)&__m256i_result[3]) = 0x1514151415141514;
+ *((unsigned long *)&__m256i_result[2]) = 0x151415141514e335;
+ *((unsigned long *)&__m256i_result[1]) = 0x1514151415141514;
+ *((unsigned long *)&__m256i_result[0]) = 0x151415141514e335;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_result[2]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_result[1]) = 0x0606060606060606;
+ *((unsigned long *)&__m256i_result[0]) = 0x0606060606060606;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1212121212121212;
+ *((unsigned long *)&__m256i_result[2]) = 0x1212121212121212;
+ *((unsigned long *)&__m256i_result[1]) = 0x1212121212121212;
+ *((unsigned long *)&__m256i_result[0]) = 0x1212121212121212;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_result[3]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_result[2]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_result[1]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_result[0]) = 0x1a1a1a2c1a1a1a2c;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x1d1d1d1e1d1d1d1e;
+ *((unsigned long *)&__m256i_result[2]) = 0x1d1d1d1e1d1d1d1e;
+ *((unsigned long *)&__m256i_result[1]) = 0x1d1d1d1e1d1d1d1e;
+ *((unsigned long *)&__m256i_result[0]) = 0x1d1d1d1e1d1d1d1e;
+ __m256i_out = __lasx_xvaddi_bu (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[2]) = 0x5982000200020002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[0]) = 0x5982000200020002;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x001f001f02c442af;
+ *((unsigned long *)&__m256i_result[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x001f001f02c442af;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x807e80fd80fe80fd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80938013800d8002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x807e80fd80fe0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80938013800d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x8091811081118110;
+ *((unsigned long *)&__m256i_result[2]) = 0x80a6802680208015;
+ *((unsigned long *)&__m256i_result[1]) = 0x8091811081110013;
+ *((unsigned long *)&__m256i_result[0]) = 0x80a6802680200018;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000003f00390035;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8015003f0006001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000003f00390035;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8015003f0006001f;
+ *((unsigned long *)&__m256i_result[3]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256i_result[2]) = 0x8020004a0011002a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256i_result[0]) = 0x8020004a0011002a;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_result[2]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_result[1]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_result[0]) = 0x0016001600160016;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_result[3]) = 0xa1bfa1bfa1bfa1bf;
+ *((unsigned long *)&__m256i_result[2]) = 0xa1bfa1bf5e7c5e7c;
+ *((unsigned long *)&__m256i_result[1]) = 0xa1bfa1bfa1bfa1bf;
+ *((unsigned long *)&__m256i_result[0]) = 0xa1bfa1bf5e7c5e7c;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_result[3]) = 0x001a001a001a009a;
+ *((unsigned long *)&__m256i_result[2]) = 0x001a001a002a009a;
+ *((unsigned long *)&__m256i_result[1]) = 0x001a001a001a009a;
+ *((unsigned long *)&__m256i_result[0]) = 0x001a001a002a009a;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x001c001c001c001c;
+ *((unsigned long *)&__m256i_result[2]) = 0x001c001c001c001c;
+ *((unsigned long *)&__m256i_result[1]) = 0x001c001c001c001c;
+ *((unsigned long *)&__m256i_result[0]) = 0x001c001c001d001d;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x721e001e721e001e;
+ *((unsigned long *)&__m256i_result[2]) = 0x721e001e721e001e;
+ *((unsigned long *)&__m256i_result[1]) = 0x721e001e721e001e;
+ *((unsigned long *)&__m256i_result[0]) = 0x721e001e721e001e;
+ __m256i_out = __lasx_xvaddi_hu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001900000019;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000600000006;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001a0000001a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001a0000001a;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001900000019;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001900000019;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001d0000001d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001d0000001d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001d0000001d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001d0000001d;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000600000006;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000001fffd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000001fffd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000700020004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000700020004;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000008;
+ __m256i_out = __lasx_xvaddi_wu (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf259905a0c126604;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6d3c2d3aa1c82947;
+ *((unsigned long *)&__m256i_result[3]) = 0x000019410000e6aa;
+ *((unsigned long *)&__m256i_result[2]) = 0xf259905a0c126614;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000883a00000f30;
+ *((unsigned long *)&__m256i_result[0]) = 0x6d3c2d3aa1c82957;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000d;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000d;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff0fff0fff10003;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff0fff0fff10003;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff47b4ffff5879;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fffffff10000006;
+ __m256i_out = __lasx_xvaddi_du (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c
new file mode 100644
index 0000000..70f3bf7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c
@@ -0,0 +1,740 @@
+/* { 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]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[2]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[1]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[0]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffeffffff88;
+ *((unsigned long *)&__m256i_op1[2]) = 0x61e0000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffeffffff88;
+ *((unsigned long *)&__m256i_op1[0]) = 0x61e0000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1ffca0011ffcb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1ffca0011ffcb;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xfffffe90ffffff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffe90ffffff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff90ffffff80;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_h_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000005;
+ __m256i_out = __lasx_xvaddwev_h_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffefffefffefffe;
+ __m256i_out = __lasx_xvaddwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000023;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwev_h_b (__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]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000011;
+ __m256i_out = __lasx_xvaddwev_h_b (__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]) = 0x007d003e007d003e;
+ *((unsigned long *)&__m256i_result[2]) = 0x007d003effa80010;
+ *((unsigned long *)&__m256i_result[1]) = 0x007d003e007d003e;
+ *((unsigned long *)&__m256i_result[0]) = 0x007d003effa80010;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ca0000fff80000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ca0000fff80000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5464fbfc416b9f71;
+ *((unsigned long *)&__m256i_op0[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d8264202b8ea3f0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x80c72fcd40fb3bc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x84bd087966d4ace0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x26aa68b274dc1322;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe072db2bb9d4cd40;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffcd42ffffecc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000475ffff4c51;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000740dffffad17;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f4bffff7130;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f3280000dfff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000468600008078;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff328ffffe021;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[2]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[1]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op0[0]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[3]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[2]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[1]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[0]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000399400003994;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000616100004f61;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000504f00002361;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8f81000040e4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000504f00002361;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8f81000040e4;
+ __m256i_out = __lasx_xvaddwev_w_h (__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]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000012;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x40b240b330313031;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff5d425d42;
+ *((unsigned long *)&__m256i_op1[1]) = 0x40b240b330313031;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff5d425d42;
+ *((unsigned long *)&__m256i_result[3]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff0000739c;
+ *((unsigned long *)&__m256i_result[1]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff0000739c;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fe000007fe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fe000007fe0;
+ __m256i_out = __lasx_xvaddwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((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_xvaddwev_d_w (__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]) = 0x00000000002e2100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000012e2110;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000583800;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000100000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000583800;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000100000;
+ __m256i_out = __lasx_xvaddwev_d_w (__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]) = 0x000000007bbbbbbb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007bbbbbbb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000073333333;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000073333333;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvaddwev_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f807f007e8080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f807f007e806f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f807f007e8080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f807f007e806f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007e8080;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007e8092;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007e8080;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007e8092;
+ __m256i_out = __lasx_xvaddwev_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000062d4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000006338;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff80000000;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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]) = 0xfe01fe01fc01fc01;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe01fe01fc01fc01;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000003fc03bbc;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1b9763952fc4c101;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe37affb42fc05f69;
+ *((unsigned long *)&__m256i_op1[1]) = 0x18b988e64facb558;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe5fb66c81da8e5bb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xe37affb42fc05f69;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x65fb66c81da8e5ba;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_q_d (__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]) = 0x1010101010101012;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1010101010101012;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1010101010101093;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1111111111111113;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101110101011;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1111111211111112;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5980000000000000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefe00000000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002800000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002800000010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff0127000c0010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff012700040010;
+ __m256i_out = __lasx_xvaddwev_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc0008000c0008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc0008000c0008000;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8001000180010000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8001000180010000;
+ __m256i_out = __lasx_xvaddwev_q_d (__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]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800200000002;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800200000002;
+ __m256i_out = __lasx_xvaddwev_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_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]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000020000000200;
+ __m256i_out = __lasx_xvaddwev_q_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe97c020010001;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x000001e001e001e0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000001e001e001e0;
+ *((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_xvaddwev_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-xvaddwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.c
new file mode 100644
index 0000000..22528a1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.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]) = 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]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010000000000000;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffc0003fffa0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fb010201f900ff;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0000000000005554;
+ *((unsigned long *)&__m256i_op1[2]) = 0xaaaa0000aaacfffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000005554;
+ *((unsigned long *)&__m256i_op1[0]) = 0xaaaa0000aaacfffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_result[2]) = 0x00aa000000ac00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_result[0]) = 0x00aa000000ac00fe;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x017f01fe01ff01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x05960616020e0203;
+ *((unsigned long *)&__m256i_op0[1]) = 0x017f01fe01ff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x05960616020e0005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x017f01fe01ff01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x05960616020e0203;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017f01fe01ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x05960616020e0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x00fe01fc01fe01fc;
+ *((unsigned long *)&__m256i_result[2]) = 0x012c002c001c0006;
+ *((unsigned long *)&__m256i_result[1]) = 0x00fe01fc01fe0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x012c002c001c000a;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0007000000fb00ef;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ea005600f90090;
+ *((unsigned long *)&__m256i_result[1]) = 0x0007000000fb00ef;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ea005600f90090;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffc03b1fc5e050;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6a9e3fa2603a2000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffc03b1fc5e050;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6a9e3fa2603a2000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_result[2]) = 0x019d00a2003a0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_result[0]) = 0x019d00a2003a0000;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_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]) = 0x00e30064001a008f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00e3006300e30063;
+ *((unsigned long *)&__m256i_result[1]) = 0x00e30064001a008f;
+ *((unsigned long *)&__m256i_result[0]) = 0x00e3006300e30063;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000013;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000a400ff004f;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002ffff00020002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f504f104f504f5;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002ffff00020002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f504f104f504f5;
+ *((unsigned long *)&__m256i_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]) = 0x000200ff00020002;
+ *((unsigned long *)&__m256i_result[2]) = 0x00f500f100f500f5;
+ *((unsigned long *)&__m256i_result[1]) = 0x000200ff00020002;
+ *((unsigned long *)&__m256i_result[0]) = 0x00f500f100f500f5;
+ __m256i_out = __lasx_xvaddwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf259905a0c126604;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6d3c2d3aa1c82947;
+ *((unsigned long *)&__m256i_op1[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256i_op1[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0658f2dc0eb21e3c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000b6b60001979a;
+ *((unsigned long *)&__m256i_result[2]) = 0x00011591000125be;
+ *((unsigned long *)&__m256i_result[1]) = 0x000093950000a915;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001201600004783;
+ __m256i_out = __lasx_xvaddwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffff6ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffff6ff00000000;
+ *((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]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_w_hu (__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]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff000000ff000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff000000ff000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffa80000ff31;
+ __m256i_out = __lasx_xvaddwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffc7f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffc000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffc7f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffc000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000b0b100015d1e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001fffe0001bfff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000b0b100015d1e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001fffe0001bfff;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffc0ffc1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f00000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffc0ffc1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f00000000003f;
+ *((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]) = 0x0001fffe0001ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0001003e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001fffe0001ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0001003e;
+ __m256i_out = __lasx_xvaddwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020010101610000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0061200000610000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020010101610000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0061200000610000;
+ *((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]) = 0x000101000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00011fff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000101000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00011fff0000ffff;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000013ffffebd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000013ffffebd8;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffec;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffebd8;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffec;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffebd8;
+ __m256i_out = __lasx_xvaddwev_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000c0007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000c0007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3abb3abbbabababa;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0080000000800080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3abb3abbbabababa;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0080000000800080;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000babababa;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000008c0087;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000babababa;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000008c0087;
+ __m256i_out = __lasx_xvaddwev_d_wu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000003ff000003ff;
+ *((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_xvaddwev_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_xvaddwev_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_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]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000000a;
+ __m256i_out = __lasx_xvaddwev_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8060000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8060000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x805f0000ffffffff;
+ __m256i_out = __lasx_xvaddwev_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe01fe010000fd02;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe01fe010000fd02;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfe01fe010000fd02;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe01fe010000fd02;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f807f80;
+ __m256i_out = __lasx_xvaddwev_q_du (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
+ __m256i_out = __lasx_xvaddwev_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-xvaddwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c
new file mode 100644
index 0000000..38a0a53
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((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]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_result[2]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_result[1]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_result[0]) = 0x0036003200360032;
+ __m256i_out = __lasx_xvaddwev_h_bu_b (__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]) = 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_xvaddwev_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]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000170017;
+ __m256i_out = __lasx_xvaddwev_h_bu_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_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]) = 0x000100fe000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000100fe00010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x000100fe000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100fe00010001;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwev_h_bu_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000030000fff3;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8020004a0011002a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8020004a0011002a;
+ *((unsigned long *)&__m256i_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]) = 0x0000004a00000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004a0000002a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004a00000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004a0000002a;
+ __m256i_out = __lasx_xvaddwev_w_hu_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]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001fff00001fff;
+ __m256i_out = __lasx_xvaddwev_w_hu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0808080808080808;
+ *((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]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001a001a001a009a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001a001a002a009a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001a001a001a009a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001a001a002a009a;
+ *((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]) = 0x0000001a000000da;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001a000000da;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001a000000da;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001a000000da;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvaddwev_w_hu_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]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000007ffffffce;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000001ce;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001ce;
+ __m256i_out = __lasx_xvaddwev_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff0000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff000000010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8011ffae800c000c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00baff050083ff3c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x80b900b980380038;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0017ffa8008eff31;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff800c000c;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000084ff3c;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff80380038;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000008fff31;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001001f001e;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001001f001e;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff00ff;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100f000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100f000ff;
+ __m256i_out = __lasx_xvaddwev_d_wu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff0ffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff0ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff78ffc0;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000016e00;
+ __m256i_out = __lasx_xvaddwev_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]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff1cff1c;
+ __m256i_out = __lasx_xvaddwev_d_wu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff1ffca0011ffcb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff1ffca0011ffcb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1ffca0011feca;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1ffca0011feca;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_q_du_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000002;
+ __m256i_out = __lasx_xvaddwev_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_xvaddwev_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_xvaddwev_q_du_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000017fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000017fff;
+ __m256i_out = __lasx_xvaddwev_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]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_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]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000040;
+ __m256i_out = __lasx_xvaddwev_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-xvaddwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c
new file mode 100644
index 0000000..a4dc565
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9240000000008025;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffff24affff8025;
+ *((unsigned long *)&__m256i_op0[1]) = 0xb2c0000000008006;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffb341ffff8006;
+ *((unsigned long *)&__m256i_op1[3]) = 0x9240000000008025;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffff24affff8025;
+ *((unsigned long *)&__m256i_op1[1]) = 0xb2c0000000008006;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffb341ffff8006;
+ *((unsigned long *)&__m256i_result[3]) = 0xff2400000000ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffeffe4fffeff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff6400000000ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeff66fffeff00;
+ __m256i_out = __lasx_xvaddwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff04ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff04ff00ff00ff00;
+ *((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]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffefffefffefffe;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_h_b (__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]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe0000fffe0002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe0000fffe0002;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000fffeffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000fffeffff;
+ __m256i_out = __lasx_xvaddwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffc0003fffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffc0003fffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvaddwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7ffeffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7ffeffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f007bfffffffb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f007bfffffffb;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvaddwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0ffe000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fa0001fff808000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0ffe000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fa0001fff808000;
+ *((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]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f0000ffffff80;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f0000ffffff80;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000400040004;
+ __m256i_out = __lasx_xvaddwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001fe;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000000000d24;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000d24;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4ffc3f7800000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3fc03f6400000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4ffc3f7800000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3fc03f6400000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_result[2]) = 0x000040c100000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x000050fd00000101;
+ *((unsigned long *)&__m256i_result[0]) = 0x000040c100000101;
+ __m256i_out = __lasx_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_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_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000800080008000;
+ *((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]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007fff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
+ *((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_xvaddwod_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_xvaddwod_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_xvaddwod_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_xvaddwod_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_xvaddwod_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000400008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000400008;
+ *((unsigned long *)&__m256i_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_xvaddwod_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_xvaddwod_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000800080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc9d8080067f50020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc70000020000c000;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007ffffffff7ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x49d8080067f4f81f;
+ __m256i_out = __lasx_xvaddwod_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((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]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvaddwod_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffebeb8;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffebeb8;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1111111111111111;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffeffffffdd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffdc;
+ *((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_xvaddwod_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_xvaddwod_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_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]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvaddwod_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-xvaddwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c
new file mode 100644
index 0000000..a2fbe9e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c
@@ -0,0 +1,560 @@
+/* { 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]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((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_xvaddwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe00007f000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x017e00ff017e00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff017e01fe;
+ __m256i_out = __lasx_xvaddwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00b7003600120000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00b7006200fc0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00b7004100190004;
+ __m256i_out = __lasx_xvaddwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000008e7c00;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000067751500;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000008e7c00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000067751500;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007a00f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff01640092;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007a00f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff01640092;
+ __m256i_out = __lasx_xvaddwod_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]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff000000ff0000;
+ __m256i_out = __lasx_xvaddwod_h_bu (__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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvaddwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_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_xvaddwod_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]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff008000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff008000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff008000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff008000000000;
+ __m256i_out = __lasx_xvaddwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff008000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff008000ff0000;
+ __m256i_out = __lasx_xvaddwod_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]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000804000004141;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00017fff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fff0000ffff;
+ *((unsigned long *)&__m256i_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_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]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007bbb0000f777;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007bbb0000f777;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3e6ce7d9cb7afb62;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3e6ce7d9cb7afb62;
+ *((unsigned long *)&__m256i_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]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003e6c0000cb7a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003e6c0000cb7a;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3abac5447fffca89;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3abac5447fffca89;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3abac5447fffca89;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3abac5447fffca89;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000755a0000d8f2;
+ *((unsigned long *)&__m256i_result[2]) = 0x000075740000fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000755a0000d8f2;
+ *((unsigned long *)&__m256i_result[0]) = 0x000075740000fffe;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffee;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffee;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffff9fffffff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffff9fffffff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x00009fff00002001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00009fff00002001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvaddwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000000000001a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000001a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100010000;
+ __m256i_out = __lasx_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000030007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000030007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00153f1594ea02ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffff0100;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff15c1ea95ea02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000153f15;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff15c1ea;
+ __m256i_out = __lasx_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100fe04ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100fe04ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff00ff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvaddwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00f9f9f900000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00f9f9f900000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000faf3f3f2;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvaddwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_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]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc3f0c3f0c3f0c3f0;
+ __m256i_out = __lasx_xvaddwod_q_du (__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]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xe6e8e6e8e6e8d719;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xe6e8e6e8e6e8d719;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_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_xvaddwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003fffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_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-xvaddwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.c
new file mode 100644
index 0000000..8c98fc4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000033e87ef1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002e2100;
+ *((unsigned long *)&__m256i_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]) = 0x000000000033007e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000021;
+ __m256i_out = __lasx_xvaddwod_h_bu_b (__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]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020002000400040;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x007fc0083fc7c007;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007fc0083fc7c007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffc0003fffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffc0003fffc0;
+ __m256i_out = __lasx_xvaddwod_h_bu_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000ff00bb;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff0057;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff00bb;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff0057;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x0000000005060503;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000073737;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000050007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000039;
+ __m256i_out = __lasx_xvaddwod_h_bu_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f3280000dfff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000007070707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0102040000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000020100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0703020000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000707;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000070300000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_h (__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]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000100640000ff92;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000100640000ff92;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007c0100007c01;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007c0100007c00;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007c0100007c01;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007c0100007c00;
+ __m256i_out = __lasx_xvaddwod_w_hu_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_xvaddwod_w_hu_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]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffe0000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffe0000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_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]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvaddwod_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000048;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000048;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000010;
+ __m256i_out = __lasx_xvaddwod_w_hu_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fffe00009fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffe00002001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffe00009fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffe00002001;
+ __m256i_out = __lasx_xvaddwod_w_hu_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010080;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_w_hu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007f00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7ffe7fffeffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffd84900000849;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07fffc670800f086;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x311d9b643ec1fe01;
+ *((unsigned long *)&__m256i_op1[0]) = 0x344ade20fe00fd01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007f00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x311d73ad3ec2064a;
+ __m256i_out = __lasx_xvaddwod_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]) = 0xffff80cbfffffdf8;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000081500000104;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffa4fffffffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000700000002;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff80cbfffffdf8;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffa4fffffffd;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_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]) = 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]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000008050501;
+ __m256i_out = __lasx_xvaddwod_q_du_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_op0[2]) = 0x019d00a20039fff9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_op0[0]) = 0x019d00a2003a0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe007a01c40110;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0020001d001f;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_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]) = 0x000000000fef0ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000fef0ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080ff0080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080ff0080;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000400080ffc080;
+ __m256i_out = __lasx_xvaddwod_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x007f010000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007f010000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvaddwod_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_xvaddwod_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-xvand.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvand.c
new file mode 100644
index 0000000..e485786
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvand.c
@@ -0,0 +1,155 @@
+/* { 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]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvand_v (__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]) = 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_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000004843ffdff;
+ *((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_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001c;
+ __m256i_out = __lasx_xvand_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandi.c
new file mode 100644
index 0000000..26cddc5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandi.c
@@ -0,0 +1,196 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0xe2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000505;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001175f10e4330e8;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff8f0842ff29211e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffff8d9ffa7103d;
+ *((unsigned long *)&__m256i_result[3]) = 0x001151510a431048;
+ *((unsigned long *)&__m256i_result[2]) = 0x5b0b08425b09011a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5b5b58595b031019;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[0]) = 0x0400040004000400;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff900000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff900000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x3f3f3f3900000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x3f3f3f3900000003;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[1]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[0]) = 0xbabababababababa;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0xba);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000404040004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000404040004040;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x40);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffff3c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffff31;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x5e5e5e5e5e5e5e1c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5e5e5e5e5e5e5e10;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x5e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x86);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f70000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x7f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0xa3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0x98);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0xd9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandi_b (__m256i_op0, 0xcc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandn.c
new file mode 100644
index 0000000..bc3590c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvandn.c
@@ -0,0 +1,125 @@
+/* { 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]) = 0x1828f0e09bad7249;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07ffc1b723953cec;
+ *((unsigned long *)&__m256i_op0[1]) = 0x61f2e9b333aab104;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6bf742aa0d7856a0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf259905a09c23be0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6d3c2d3a89167aeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000090100008492;
+ *((unsigned long *)&__m256i_result[2]) = 0xf000104808420300;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000e20;
+ *((unsigned long *)&__m256i_result[0]) = 0x04082d108006284b;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffdfffdfffdfffd;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xefdfefdfefdfefdf;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvandn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c
new file mode 100644
index 0000000..5ce31eb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c
@@ -0,0 +1,680 @@
+/* { 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]) = 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_xvavg_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]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001f;
+ __m256i_out = __lasx_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000100da000100fd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001ffe20001fefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001009a000100fd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001ff640001fefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000edff00fffd;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fff10000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000cdff00fffd;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff320000ffff;
+ __m256i_out = __lasx_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffe00f7ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffff629d7;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffe00f7ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffff629d7;
+ __m256i_out = __lasx_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_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]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_result[2]) = 0xd010101010103218;
+ *((unsigned long *)&__m256i_result[1]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_result[0]) = 0xd010101010103218;
+ __m256i_out = __lasx_xvavg_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_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_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]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000400100014;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000004;
+ __m256i_out = __lasx_xvavg_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]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavg_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00010002;
+ __m256i_out = __lasx_xvavg_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]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000800080008;
+ __m256i_out = __lasx_xvavg_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_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]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvavg_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x1010101010101013;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101013;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvavg_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000000006170;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000006170;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000030b8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000030b8;
+ __m256i_out = __lasx_xvavg_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_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]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202010202020102;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000202;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvavg_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_xvavg_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000500040005;
+ __m256i_out = __lasx_xvavg_h (__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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op1[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xc58a0a0a07070706;
+ *((unsigned long *)&__m256i_result[2]) = 0x006b60e4180b0023;
+ *((unsigned long *)&__m256i_result[1]) = 0x1b39153f334b966a;
+ *((unsigned long *)&__m256i_result[0]) = 0xf1d75d79efcac002;
+ __m256i_out = __lasx_xvavg_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvavg_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_xvavg_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_xvavg_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_xvavg_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff00007fff;
+ __m256i_out = __lasx_xvavg_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_xvavg_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffe00000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffe00000000000;
+ *((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]) = 0xfffff00000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffff00000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavg_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_xvavg_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]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x003fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x003fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff7fffffff;
+ __m256i_out = __lasx_xvavg_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_xvavg_d (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080808100808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0080808000808080;
+ __m256i_out = __lasx_xvavg_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_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]) = 0x0888888888888888;
+ *((unsigned long *)&__m256i_result[2]) = 0x0888888888888888;
+ *((unsigned long *)&__m256i_result[1]) = 0x0888888888888888;
+ *((unsigned long *)&__m256i_result[0]) = 0x0888888888888888;
+ __m256i_out = __lasx_xvavg_d (__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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvavg_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_xvavg_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3e6ce7d9cb7afb62;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3e6ce7d9cb7afb62;
+ *((unsigned long *)&__m256i_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]) = 0x2008000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1f3673ece5bd7db1;
+ *((unsigned long *)&__m256i_result[1]) = 0x2008000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1f3673ece5bd7db1;
+ __m256i_out = __lasx_xvavg_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavg_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400000003fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400000003fff;
+ __m256i_out = __lasx_xvavg_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000020202000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000020202000;
+ __m256i_out = __lasx_xvavg_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]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffe00fe00;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000001fe01dde;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffe00fe00;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000001fe01dde;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000080040;
+ __m256i_out = __lasx_xvavg_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]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvavg_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-xvavg-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c
new file mode 100644
index 0000000..d04e427
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c
@@ -0,0 +1,560 @@
+/* { 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]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x61d849f0c0794ced;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe75278c187b20039;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf90c0c0c00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0ca40c0c0c0c0cc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0c0c0c0c0cb60cc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfbe0b80c960c96d0;
+ *((unsigned long *)&__m256i_result[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_result[2]) = 0x146014141414146e;
+ *((unsigned long *)&__m256i_result[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_result[0]) = 0xf19998668e5f4b84;
+ __m256i_out = __lasx_xvavg_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff00fff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f007f78;
+ __m256i_out = __lasx_xvavg_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_xvavg_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fefffeff02ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00030006fa05f20e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00030081bd80f90e;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00010003fc827a86;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f7f7f7f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f017fc0ddbf7d86;
+ __m256i_out = __lasx_xvavg_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]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0202010202020102;
+ *((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_xvavg_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavg_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x007f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f00000000;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000007f00000022;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000003f00000011;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000003f00000000;
+ __m256i_out = __lasx_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_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]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fff3fff3fff3fff;
+ __m256i_out = __lasx_xvavg_hu (__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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffbfffafffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffbfffaffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00fe01fc01fe01fc;
+ *((unsigned long *)&__m256i_op1[2]) = 0x012c002c001c0006;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00fe01fc01fe0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x012c002c001c000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x807e80fd80fe80fd;
+ *((unsigned long *)&__m256i_result[2]) = 0x80938013800d8002;
+ *((unsigned long *)&__m256i_result[1]) = 0x807e80fd80fe0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x80938013800d0005;
+ __m256i_out = __lasx_xvavg_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_xvavg_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]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000800080008000;
+ __m256i_out = __lasx_xvavg_hu (__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]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff810011;
+ *((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]) = 0x3fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fff7fffffc08008;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fff7fffffc08008;
+ __m256i_out = __lasx_xvavg_hu (__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]) = 0x800000007fff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x80000000ff7f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x800000007fff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x80000000ff7f0000;
+ __m256i_out = __lasx_xvavg_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]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff0000;
+ __m256i_out = __lasx_xvavg_hu (__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]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000004;
+ __m256i_out = __lasx_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[2]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[0]) = 0x7e00000000000000;
+ __m256i_out = __lasx_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fff00400011;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000008001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fff00400011;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvavg_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_xvavg_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_xvavg_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a09080706050403;
+ *((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]) = 0x0504840303028201;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0504840303028201;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavg_wu (__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]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvavg_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000005000000020;
+ *((unsigned long *)&__m256i_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]) = 0x0000002800000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002800000010;
+ __m256i_out = __lasx_xvavg_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40efffe000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40efffe000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f807f007f7f817f;
+ __m256i_out = __lasx_xvavg_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x111ebb784f9c4100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1c386546809f3b50;
+ *((unsigned long *)&__m256i_op1[1]) = 0x111ebb784f9bf1ac;
+ *((unsigned long *)&__m256i_op1[0]) = 0x21f6050d955d3f68;
+ *((unsigned long *)&__m256i_result[3]) = 0x088f5dbc27ce2080;
+ *((unsigned long *)&__m256i_result[2]) = 0x161c32a2c04f9da7;
+ *((unsigned long *)&__m256i_result[1]) = 0x088f5dbc27cdf8d6;
+ *((unsigned long *)&__m256i_result[0]) = 0x10fb02864aae9fb4;
+ __m256i_out = __lasx_xvavg_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe0000fffe0012;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavg_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvavg_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000800080008000;
+ __m256i_out = __lasx_xvavg_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]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007bbb0000f777;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007bbb0000f777;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003ddd80007bbb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003ddd80007bbb;
+ __m256i_out = __lasx_xvavg_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]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007878;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007878;
+ __m256i_out = __lasx_xvavg_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvavg_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_xvavg_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]) = 0x0000001e00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000f00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavg_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-xvavgr-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c
new file mode 100644
index 0000000..37b78aa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c
@@ -0,0 +1,770 @@
+/* { 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]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op0[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op0[1]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op0[0]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x2b2b2b2b1bd5d5d6;
+ *((unsigned long *)&__m256i_result[2]) = 0x2a2a2a2af2d5d5d6;
+ *((unsigned long *)&__m256i_result[1]) = 0x2b2b2b2b1bd5d5d6;
+ *((unsigned long *)&__m256i_result[0]) = 0x2a2a2a2af2d5d5d6;
+ __m256i_out = __lasx_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_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]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000c0;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000200020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000200020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000200020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000200020;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffe;
+ *((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_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_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]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_result[3]) = 0x40f23232330df9c8;
+ *((unsigned long *)&__m256i_result[2]) = 0x40f2323240f23232;
+ *((unsigned long *)&__m256i_result[1]) = 0x40f23232330df9c8;
+ *((unsigned long *)&__m256i_result[0]) = 0x40f2323240f23232;
+ __m256i_out = __lasx_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100800000;
+ *((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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100c00000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0ff000000000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000f00f000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0ff000000000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000f00f000000000;
+ *((unsigned long *)&__m256i_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]) = 0x00f8000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x000800f800000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f8000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x000800f800000000;
+ __m256i_out = __lasx_xvavgr_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]) = 0x00000000090b0906;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000005060503;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000073737;
+ __m256i_out = __lasx_xvavgr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xdff8000000000000;
+ __m256i_out = __lasx_xvavgr_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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff7f0000ff7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff7f0000ff7f;
+ __m256i_out = __lasx_xvavgr_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000fd0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fd0000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007f0000;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_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]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_result[2]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_result[1]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_result[0]) = 0xdfc2df80df80df87;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_result[2]) = 0xdfc2ff20df80ffa7;
+ *((unsigned long *)&__m256i_result[1]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_result[0]) = 0xdfc2ff20df80ffa7;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256i_result[2]) = 0x21f8c3c4c0000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256i_result[0]) = 0x21f8c3c4c0000005;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[0]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_result[2]) = 0x8848c848c848c848;
+ *((unsigned long *)&__m256i_result[1]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_result[0]) = 0x8848c848c848c848;
+ __m256i_out = __lasx_xvavgr_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]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_h (__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]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000080c000c080;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fffffff3fffc000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fffffff3fffc000;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x003fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x003fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x003fffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x003fffffffffffff;
+ *((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]) = 0x001fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x001fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavgr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000007ffffffce;
+ __m256i_out = __lasx_xvavgr_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]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000808081;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000808081;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000808081;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000808081;
+ __m256i_out = __lasx_xvavgr_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]) = 0x0000f18080010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000f18080010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000078c0c0008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000078c0c0008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1086658a18ba3594;
+ *((unsigned long *)&__m256i_op1[2]) = 0x160fe9f000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1086658a18ba3594;
+ *((unsigned long *)&__m256i_op1[0]) = 0x160fe9f000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x07a232640bfc1a73;
+ *((unsigned long *)&__m256i_result[2]) = 0x0a66f497ff9effa9;
+ *((unsigned long *)&__m256i_result[1]) = 0x07a232640bfc1a73;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a66f497ff9effa9;
+ __m256i_out = __lasx_xvavgr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fff6a9d8;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff6a9d8;
+ __m256i_out = __lasx_xvavgr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000807e7ffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000807e7ffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000807e7ffe;
+ __m256i_out = __lasx_xvavgr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_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]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f8080007f007f;
+ __m256i_out = __lasx_xvavgr_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]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff8000;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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_xvavgr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000f00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((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]) = 0x0000000000000081;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000004a00000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000004a0000002a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000004a00000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004a0000002a;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fffffffefffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fffffffefffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002500000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x00008024ffff8014;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc0002500000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x00008024ffff8014;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000001a00;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000023a20000a121;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000179e0000951d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000023a20000a121;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000179e0000951d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000125100005111;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000c4f00004b0f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000125100005111;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000c4f00004b0f;
+ __m256i_out = __lasx_xvavgr_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]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000080008001;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff457d607f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff457d607f;
+ *((unsigned long *)&__m256i_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]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffa2beb040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffa2beb040;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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_xvavgr_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_xvavgr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000005858585a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000005858585a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000005858585a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000005858585a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000023a300003fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000023a300003fef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000023a300003fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000023a300003fef;
+ *((unsigned long *)&__m256i_result[3]) = 0x000011d1ac2c4c2d;
+ *((unsigned long *)&__m256i_result[2]) = 0x000011d1ac2c4c25;
+ *((unsigned long *)&__m256i_result[1]) = 0x000011d1ac2c4c2d;
+ *((unsigned long *)&__m256i_result[0]) = 0x000011d1ac2c4c25;
+ __m256i_out = __lasx_xvavgr_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-xvavgr-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c
new file mode 100644
index 0000000..3944a6a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c
@@ -0,0 +1,650 @@
+/* { 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]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
+ __m256i_out = __lasx_xvavgr_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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_xvavgr_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]) = 0x0000018803100188;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000018803100188;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000014402080144;
+ __m256i_out = __lasx_xvavgr_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]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000437f0000201f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000201f00002020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000437f0000201f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000201f00002020;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x90007fff90008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0ffffffe90008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x87ffffff87ffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xc880bfffc880c080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x87ffffffc880c080;
+ __m256i_out = __lasx_xvavgr_bu (__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]) = 0x0000000082a54290;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000028aa700;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000082a54290;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000002a54287;
+ *((unsigned long *)&__m256i_result[3]) = 0x007f00f841532148;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001a753c3;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f00f841532148;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001b52187;
+ __m256i_out = __lasx_xvavgr_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]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007bbb0000f777;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000004444;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007bbb0000f777;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003dde00007bbc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003dde00007bbc;
+ __m256i_out = __lasx_xvavgr_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]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[3]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fc03f803fc040c0;
+ *((unsigned long *)&__m256i_result[1]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fc03f803fc040c0;
+ __m256i_out = __lasx_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0504070804040404;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0504070804040404;
+ *((unsigned long *)&__m256i_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]) = 0x0283038402020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0282038402020202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0283038402020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0282038402020202;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1010101010001000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x101010100000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((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]) = 0x0889088908810881;
+ *((unsigned long *)&__m256i_result[2]) = 0x0081010000810100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0889088900810088;
+ *((unsigned long *)&__m256i_result[0]) = 0x0081010000810100;
+ __m256i_out = __lasx_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000001d001d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3e00000440004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3e000004400f400f;
+ __m256i_out = __lasx_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3abb3abbbabababa;
+ *((unsigned long *)&__m256i_result[2]) = 0x0080000000800080;
+ *((unsigned long *)&__m256i_result[1]) = 0x3abb3abbbabababa;
+ *((unsigned long *)&__m256i_result[0]) = 0x0080000000800080;
+ __m256i_out = __lasx_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_hu (__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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc0008000c0008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc0008000c0008000;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op1[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5890a0a07070707;
+ *((unsigned long *)&__m256i_result[2]) = 0x006be0e4180b8024;
+ *((unsigned long *)&__m256i_result[1]) = 0x1b399540334c966c;
+ *((unsigned long *)&__m256i_result[0]) = 0x71d7dd7aefcac001;
+ __m256i_out = __lasx_xvavgr_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]) = 0x0000000000808080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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_xvavgr_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_result[2]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_result[0]) = 0x000a800b000a800b;
+ __m256i_out = __lasx_xvavgr_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00f9f9f900000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00f9f9f900000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007cfcfd80000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007cfcfd80000001;
+ __m256i_out = __lasx_xvavgr_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]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff8001ffff8001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff8001ffff8001;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffc0017fffc001;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffc0017fffc001;
+ __m256i_out = __lasx_xvavgr_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0080000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000005;
+ __m256i_out = __lasx_xvavgr_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0658f2dc0eb21e3c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000501e99b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000109973de7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001020f22;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001890b7a39;
+ *((unsigned long *)&__m256i_result[3]) = 0x1b974ebaf6d64d4e;
+ *((unsigned long *)&__m256i_result[2]) = 0x62e0429c1b48fed1;
+ *((unsigned long *)&__m256i_result[1]) = 0x18b985adf63f548c;
+ *((unsigned long *)&__m256i_result[0]) = 0x032c796ecbdecc3b;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc600000000000000;
+ *((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]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvavgr_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3a2a3a2a3a2a3a2a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3a2a3a2a3aaa45aa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3a553f7f7a2a3a2a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3a2a3a2a3aaa45aa;
+ *((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]) = 0x1d949d949d949d95;
+ *((unsigned long *)&__m256i_result[2]) = 0x1d949d949e1423d4;
+ *((unsigned long *)&__m256i_result[1]) = 0x1de9a03f3dd41d95;
+ *((unsigned long *)&__m256i_result[0]) = 0x1d949d949e1423d4;
+ __m256i_out = __lasx_xvavgr_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010100005400;
+ *((unsigned long *)&__m256i_op1[3]) = 0x001e001ea1bfa1bf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x001e001e83e5422e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x001e001ea1bfa1bf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x011f011f0244420e;
+ *((unsigned long *)&__m256i_result[3]) = 0x000f000fd0dfd0df;
+ *((unsigned long *)&__m256i_result[2]) = 0x000f000f83ef4b4a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000f000fd0dfd0df;
+ *((unsigned long *)&__m256i_result[0]) = 0x0110011001224b07;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000030000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000030000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000018002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000018002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvavgr_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]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3870ca8d013e76a0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43ec0a1b2aba7ed0;
+ *((unsigned long *)&__m256i_result[3]) = 0x111ebb784f9c4100;
+ *((unsigned long *)&__m256i_result[2]) = 0x1c386546809f3b50;
+ *((unsigned long *)&__m256i_result[1]) = 0x111ebb784f9bf1ac;
+ *((unsigned long *)&__m256i_result[0]) = 0x21f6050d955d3f68;
+ __m256i_out = __lasx_xvavgr_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_xvavgr_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]) = 0x0000840100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbffebffec0fe0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000840100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbffebffec0fe0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5fff5fff607f0000;
+ __m256i_out = __lasx_xvavgr_du (__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_xvavgr_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff457d607f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff457d607f;
+ *((unsigned long *)&__m256i_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]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffa2beb040;
+ __m256i_out = __lasx_xvavgr_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-xvbitclr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c
new file mode 100644
index 0000000..def7b58
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c
@@ -0,0 +1,635 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000040000fff8;
+ *((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_xvbitclr_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_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000105fffffefb;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffff02000000fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000105fffffefb;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff02000000fe;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_result[2]) = 0xbffffffffffffeff;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_result[0]) = 0xbffffffffffffeff;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff7fff7fffdefd;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_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_xvbitclr_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]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000f0000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f0000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002555400000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002555400000000;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000002a542a;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_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]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_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]) = 0x0002000200020002;
+ *((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]) = 0x0002000200020002;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256i_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]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000fff00004542;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00feff02ff;
+ *((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]) = 0xff00fe00feff02fe;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00fe00feff027f;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00fe00feff02fe;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff027f;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000023a20000a121;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000179e0000951d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000023a20000a121;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000179e0000951d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000000100;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000175e0000490d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000175e0000490d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000165e0000480d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000165e0000480d;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007fef;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007fef;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000007fef;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000007fef;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007fee;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_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]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_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]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffff00;
+ *((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]) = 0x00000000fefe7f00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fefe7f00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_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]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff00000000;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffefffe00000000;
+ __m256i_out = __lasx_xvbitclr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007f7f80007fa3;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f670000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f7f80007fa3;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f670000;
+ __m256i_out = __lasx_xvbitclr_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_xvbitclr_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffeffff10000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffeffff10000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ffffffffffffffe;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3e8000003e800000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3e8000003e800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3e8000003e800000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3e8000003e800000;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00001ff8d8d90000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00001ff8d8d90000;
+ *((unsigned long *)&__m256i_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]) = 0x00001ef8d8d8c000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001ef8d8d80000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001ef8d8d8c000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001ef8d8d80000;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_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]) = 0x0000fffe0000000c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffe0000000c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
+ *((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]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffe00000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffe00000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefee00000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fff000000000;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ffff88ff88;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff007f007f00;
+ __m256i_out = __lasx_xvbitclr_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffeffffff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffeffffff00;
+ __m256i_out = __lasx_xvbitclr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c
new file mode 100644
index 0000000..713eb19
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe06df8d7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffbe8b470f;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe06df0d7;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffbe8b470f;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff1ffca0011ffcb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010ffc80010ff52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff1ffca0011ffcb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010bfc80010bf52;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1bfca0011bfcb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010bfc80010bf52;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1bfca0011bfcb;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256i_op0[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256i_op0[0]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000005136aaaaa8;
+ *((unsigned long *)&__m256i_result[2]) = 0x55515551aaaaaaa8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000005136aaaaa8;
+ *((unsigned long *)&__m256i_result[0]) = 0x55515551aaaaaaa8;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fdf000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fdf000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fdf7fff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fdf7fff00000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000fd0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000fd0000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000807e7ffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f7e7f7e7f7e7f7e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f7e7f7e;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f7e7f7e7f7e0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007e7f7e;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x24);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x0);
+ 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_result[3]) = 0xcf01010143a10101;
+ *((unsigned long *)&__m256i_result[2]) = 0x4b6f01ef4b6f00ef;
+ *((unsigned long *)&__m256i_result[1]) = 0xcf01010143a10101;
+ *((unsigned long *)&__m256i_result[0]) = 0x4b6f01ef4b6f00ef;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xdfffffffdfffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xdfffffffdfffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff7fff7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff7f027f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff7f0100;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00fe7f027f;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x7);
+ 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_result[3]) = 0x8011ffae800c000c;
+ *((unsigned long *)&__m256i_result[2]) = 0x00baff050083ff3c;
+ *((unsigned long *)&__m256i_result[1]) = 0x80b900b980380038;
+ *((unsigned long *)&__m256i_result[0]) = 0x0017ffa8008eff31;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_op0[2]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_op0[0]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_result[2]) = 0x23222120171e151c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_result[0]) = 0x23222120171e151c;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0xb);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fefe0000fefe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fefe0000fefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00fe00fe00fe00fe;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x26);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fe1ffe0ffe1ffe0;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_d (__m256i_op0, 0x16);
+ 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_result[3]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffb;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffffb;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800200028;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xefefefefefee00aa;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xefefefefefee00aa;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x4);
+ 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_result[3]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000f788f788;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000f788f788;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitclri_w (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffefffefffefffe;
+ __m256i_out = __lasx_xvbitclri_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c
new file mode 100644
index 0000000..2b0e7f8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c
@@ -0,0 +1,650 @@
+/* { 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]) = 0x0501030102141923;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffd5020738b43ddb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x010200023b8e4174;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff4ff4e11410b40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01fa022a01a401e5;
+ *((unsigned long *)&__m256i_op1[2]) = 0x030d03aa0079029b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x024c01f901950261;
+ *((unsigned long *)&__m256i_op1[0]) = 0x008102c2008a029f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101070102041903;
+ *((unsigned long *)&__m256i_result[2]) = 0xdfd506073ab435db;
+ *((unsigned long *)&__m256i_result[1]) = 0x110202023bae4176;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff6ff4a15418b40;
+ __m256i_out = __lasx_xvbitrev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0edf8d7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffbe8bc70f;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffe0edf8d7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffbe8bc70f;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe06df8d7;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffbe8b470f;
+ __m256i_out = __lasx_xvbitrev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000101001e18;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvbitrev_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]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefefefefe;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((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]) = 0x1d1a1b181d1a1b18;
+ *((unsigned long *)&__m256i_result[2]) = 0x9c9b9a999c9b9a99;
+ *((unsigned long *)&__m256i_result[1]) = 0x1d1a1b181d1a1b18;
+ *((unsigned long *)&__m256i_result[0]) = 0x9c9b9a999c9b9a99;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0101010100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000033e87ef1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002e2100;
+ *((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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x80008000b3e8fef1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x80008000802ea100;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((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_xvbitrev_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]) = 0x0200000200000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2c27000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0200000200000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x2c27000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000800080008000;
+ __m256i_out = __lasx_xvbitrev_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]) = 0xffff00ff00ffff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffff00ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000180000000;
+ __m256i_out = __lasx_xvbitrev_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]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x8001800180018001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x8001800180018001;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_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]) = 0x0000000200000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000200000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00010002;
+ __m256i_out = __lasx_xvbitrev_d (__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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x80000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x80000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((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_xvbitrev_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitrev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f6f7f7f7f6;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f6f7f7f7f6;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f6f7f7f7f6;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f6f7f7f7f6;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+ *((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_xvbitrev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x7eeefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x7eeefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrev_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010000fffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010000fffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000fffe;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000004;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fe000000000;
+ *((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_xvbitrev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000008000b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000008000b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_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]) = 0x000000000008000a;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000008000a;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000a;
+ __m256i_out = __lasx_xvbitrev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000100010001fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100010001fffe;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitrev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00fe00fe00fe00fe;
+ *((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]) = 0x40fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x40fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x40fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x40fe00fe00fe00fe;
+ __m256i_out = __lasx_xvbitrev_d (__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]) = 0xffffc0007ffe0002;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000400000018002;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffc0007ffe0002;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000400000018002;
+ __m256i_out = __lasx_xvbitrev_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefe01010101;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000400008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000400008;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x010101010101016c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101410128;
+ *((unsigned long *)&__m256i_result[1]) = 0x010101010101016c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101410128;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x800000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x800000ff000000ff;
+ __m256i_out = __lasx_xvbitrev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff97c120000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff97c120000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe97c020010001;
+ __m256i_out = __lasx_xvbitrev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefefefe7f;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefefefe7f;
+ __m256i_out = __lasx_xvbitrev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010081;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100018080;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrev_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvbitrev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c
new file mode 100644
index 0000000..2b8327d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c
@@ -0,0 +1,317 @@
+/* { 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]) = 0x00000000ff00ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff00ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x01010101fe01fe01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x01010101fe01fe01;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_result[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_result[0]) = 0x2000200020002000;
+ __m256i_out = __lasx_xvbitrevi_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7ff77fff7ff7;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7ff77fff7ff7;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000020001;
+ *((unsigned long *)&__m256i_result[3]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010121011;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000040;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000020000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000020000000000;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x29);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001c4e8ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001c4e8ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0080000000800000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0081c4e8ff7fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000000800000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0081c4e8ff7fffff;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f7f017ffd;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f7f017ffd;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002080100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002080100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000a080100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000a080100;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100010001000100;
+ __m256i_out = __lasx_xvbitrevi_h (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[3]) = 0xfee1057c01e10581;
+ *((unsigned long *)&__m256i_result[2]) = 0x011ec1210161057b;
+ *((unsigned long *)&__m256i_result[1]) = 0xfee1057c01e10581;
+ *((unsigned long *)&__m256i_result[0]) = 0x011ec1210161057b;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x0);
+ 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_result[3]) = 0xfdfdfdfdfdfdfdfd;
+ *((unsigned long *)&__m256i_result[2]) = 0xe27fe2821d226278;
+ *((unsigned long *)&__m256i_result[1]) = 0xfdfdfdfdfdfdfdfd;
+ *((unsigned long *)&__m256i_result[0]) = 0xe27fe2821d226278;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000008;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[3]) = 0x080808000828082f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080008280820;
+ *((unsigned long *)&__m256i_result[1]) = 0x080808000828082f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080008280820;
+ __m256i_out = __lasx_xvbitrevi_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvbitrevi_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000800000000000;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x02000000fdffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x02000000fdffffff;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffeffed;
+ __m256i_out = __lasx_xvbitrevi_d (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_result[2]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_result[1]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_result[0]) = 0xc03b000200020002;
+ __m256i_out = __lasx_xvbitrevi_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff81007fff0100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff81007fff0100;
+ __m256i_out = __lasx_xvbitrevi_w (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c
new file mode 100644
index 0000000..c9847a6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c
@@ -0,0 +1,134 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[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_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001f001f02c442af;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001f001f02c442af;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_result[3]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[1]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000c40086;
+ __m256i_out = __lasx_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbe21000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000505300000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbe21000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000505300000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00005053000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00005053000000ff;
+ __m256i_out = __lasx_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000040000;
+ __m256i_out = __lasx_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvbitsel_v (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c
new file mode 100644
index 0000000..1edb4fc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c
@@ -0,0 +1,185 @@
+/* { 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]) = 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_xvbitseli_b (__m256i_op0, __m256i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000004fb;
+ *((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_xvbitseli_b (__m256i_op0, __m256i_op1, 0xef);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvbitseli_b (__m256i_op0, __m256i_op1, 0xcd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffd10000006459;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000441000000004;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000040400000104;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000007fff01ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdb8e209d0cce025a;
+ *((unsigned long *)&__m256i_result[3]) = 0x88888a6d0962002e;
+ *((unsigned long *)&__m256i_result[2]) = 0xdb8a3109fe0f0020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007fff01fffb;
+ *((unsigned long *)&__m256i_result[0]) = 0xdb8e20990cce025a;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0x88);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000002b902b3e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000002b902b3e;
+ *((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]) = 0x000000002a102a3a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000002a102a3a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvbitseli_b (__m256i_op0, __m256i_op1, 0xd9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000090909090;
+ *((unsigned long *)&__m256i_result[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000090909090;
+ *((unsigned long *)&__m256i_result[0]) = 0x9090909090909090;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0x95);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op0[1]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_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]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_result[2]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_result[1]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_result[0]) = 0x4545454545454545;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0x4d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x21bb481000ff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01bf481000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x21bb481000ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01bf481000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xb1b3b1b1b1b7b1b1;
+ *((unsigned long *)&__m256i_result[2]) = 0xb1b7b1b1b1b1b1b1;
+ *((unsigned long *)&__m256i_result[1]) = 0xb1b3b1b1b1b7b1b1;
+ *((unsigned long *)&__m256i_result[0]) = 0xb1b7b1b1b1b1b1b1;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0xb7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc03fc03fc03fc03f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc03fc03fc03fc03f;
+ *((unsigned long *)&__m256i_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]) = 0x000000000000002d;
+ *((unsigned long *)&__m256i_result[2]) = 0xc02dc02dc02dc02d;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000002d;
+ *((unsigned long *)&__m256i_result[0]) = 0xc02dc02dc02dc02d;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0xed);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((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]) = 0x60600000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x6060000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x60600000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x6060000000000000;
+ __m256i_out = __lasx_xvbitseli_b (__m256i_op0, __m256i_op1, 0x60);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitset.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitset.c
new file mode 100644
index 0000000..c195cd9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitset.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]) = 0xffff000000010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000095120000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc9da000063f50000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc7387fff6bbfffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffdffffffc81aca;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff3a0b9512;
+ *((unsigned long *)&__m256i_op1[1]) = 0x280bc9db313a63f5;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe032c738adcb6bbb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800001010400;
+ *((unsigned long *)&__m256i_result[2]) = 0x000180009d120004;
+ *((unsigned long *)&__m256i_result[1]) = 0xc9da080067f50020;
+ *((unsigned long *)&__m256i_result[0]) = 0xc73c7fff6bbfffff;
+ __m256i_out = __lasx_xvbitset_h (__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]) = 0xffffff8046867f79;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffff328dfff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6651bfff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00010001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00010001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00001f41ffffbf00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x010180068080fff9;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvbitset_w (__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]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x3ff1808001020101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x3ff1808001020101;
+ __m256i_out = __lasx_xvbitset_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x00000000000004fb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0800000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitset_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000102;
+ *((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]) = 0x0001000100010103;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvbitset_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]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000040000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000010000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000040000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000040000010;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbea2e127c046721f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1729c073816edebe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xde91f010000006f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ef1f90efefaf30d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000060000108;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001060005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fef0001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xbfa3e127c147721f;
+ *((unsigned long *)&__m256i_result[2]) = 0x1729c173836edfbe;
+ *((unsigned long *)&__m256i_result[1]) = 0xdf91f111808007fb;
+ *((unsigned long *)&__m256i_result[0]) = 0x5ff1f90ffffbf30f;
+ __m256i_out = __lasx_xvbitset_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_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]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_result[2]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_result[1]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_result[0]) = 0xe161616161614f61;
+ __m256i_out = __lasx_xvbitset_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01010101010000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808280808082;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808280808082;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808280808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808280808082;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000082f8989a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000d58f43c8;
+ *((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]) = 0x0101010183f9999b;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x01010101d58f43c9;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvbitset_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ffe7ffd7ffe7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ffe7ffd7ffe8001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0707feb70707b7d1;
+ *((unsigned long *)&__m256i_result[2]) = 0x65baa7efea95a985;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707feb70707b7d1;
+ *((unsigned long *)&__m256i_result[0]) = 0x65baa7ef6a95a987;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x41cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x41cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7b7b7b7b80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xcacacb1011040500;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7b7b7b7b80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xcacacb1011040500;
+ *((unsigned long *)&__m256i_result[3]) = 0x49cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ff4080102102001;
+ *((unsigned long *)&__m256i_result[1]) = 0x49cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff4080102102001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((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_xvbitset_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010401;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010401;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010401;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010401;
+ __m256i_out = __lasx_xvbitset_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5b7f00ff5b7f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5b7f00ff5b7f00ff;
+ *((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]) = 0xdf01010153a10101;
+ *((unsigned long *)&__m256i_result[2]) = 0x5b7f01ff5b7f10ff;
+ *((unsigned long *)&__m256i_result[1]) = 0xdf01010153a10101;
+ *((unsigned long *)&__m256i_result[0]) = 0x5b7f01ff5b7f10ff;
+ __m256i_out = __lasx_xvbitset_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]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000080000001000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000080000001000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080000000800;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_op0[2]) = 0x23222120171e151c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_op0[0]) = 0x23222120171e151c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x201fdfe0201fdfe0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x201fdfe0201fdfe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010127272525;
+ *((unsigned long *)&__m256i_result[2]) = 0x23a2a121179e951d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010127272525;
+ *((unsigned long *)&__m256i_result[0]) = 0x23a2a121179e951d;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvbitset_w (__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]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x800080008000ffee;
+ *((unsigned long *)&__m256i_result[2]) = 0x800080008000ffee;
+ *((unsigned long *)&__m256i_result[1]) = 0x800080008000ffee;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080008000ffee;
+ __m256i_out = __lasx_xvbitset_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvbitset_w (__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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100010001ffff;
+ __m256i_out = __lasx_xvbitset_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00010000fffe0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00010000fffe0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00010000fffe0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00010000fffe0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvbitset_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x01010101010101c9;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000affff800b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000affff800b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000affff800b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000affff800b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000800;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000400010004;
+ __m256i_out = __lasx_xvbitset_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_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]) = 0x0001000f0001000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000f0001000d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000f0001000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000f0001000d;
+ __m256i_out = __lasx_xvbitset_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f010000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f010000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f010100000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f010100000101;
+ __m256i_out = __lasx_xvbitset_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvbitset_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_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]) = 0x498100814843ffe1;
+ *((unsigned long *)&__m256i_result[2]) = 0x4981008168410001;
+ *((unsigned long *)&__m256i_result[1]) = 0x498100814843ffe1;
+ *((unsigned long *)&__m256i_result[0]) = 0x4981008168410001;
+ __m256i_out = __lasx_xvbitset_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]) = 0x00000000090b0906;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100002000;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[2]) = 0x03acfc5303260e80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[0]) = 0x03acfc5303260e80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_result[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_result[2]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_result[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_result[0]) = 0x03acfc5303260e81;
+ __m256i_out = __lasx_xvbitset_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c
new file mode 100644
index 0000000..47f37e4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c
@@ -0,0 +1,405 @@
+/* { 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_result[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080000000800;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000040000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000040000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f00007fff;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202020202020202;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000000;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000004000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000004000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000004000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000004000000;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001000000fb;
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808180808093;
+ *((unsigned long *)&__m256i_result[2]) = 0x80808081808080fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808180808093;
+ *((unsigned long *)&__m256i_result[0]) = 0x80808081808080fb;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000020;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010000000100000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010000000100000;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0x4);
+ 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_result[3]) = 0x1000100054445443;
+ *((unsigned long *)&__m256i_result[2]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_result[1]) = 0x1000100054445443;
+ *((unsigned long *)&__m256i_result[0]) = 0x7bbbbbbbf7777778;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffa2078fffa2074;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffa2078fffa2074;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeffebfb7afb62;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[3]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[2]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[1]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[0]) = 0xe7e7e7e7e7e7e7e7;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020206431;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020206431;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0043030300400300;
+ *((unsigned long *)&__m256i_result[2]) = 0x0043030300400300;
+ *((unsigned long *)&__m256i_result[1]) = 0x0043030300400100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0043030300400100;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3870ca8d013e76a0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ec0a1b2aba7ed0;
+ *((unsigned long *)&__m256i_result[3]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x3870ca9d013e76b0;
+ *((unsigned long *)&__m256i_result[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ec0a1b2aba7ed0;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f780000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f8f7f80000fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f780000ff80;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f784000ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f8f7f84000fff9;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f784000ff80;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe1ffe0ffe1ffe0;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000008000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000008000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffefef800;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000000020000;
+ __m256i_out = __lasx_xvbitseti_w (__m256i_op0, 0x11);
+ 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_result[3]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[2]) = 0x00020002000230ba;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[0]) = 0x00020002000230ba;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x8100810081008100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x8100810081008100;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007878;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000007878;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000107878;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000107878;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000400140004001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffff2f640006f48;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000400140004001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff2f640006f48;
+ __m256i_out = __lasx_xvbitseti_h (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvbitseti_d (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_result[3]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_result[2]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_result[1]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_result[0]) = 0xfd12fd12fd12fd12;
+ __m256i_out = __lasx_xvbitseti_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c
new file mode 100644
index 0000000..3c1a8b8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c
@@ -0,0 +1,130 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00555555553f8000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00555555553f8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000030000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000030000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x1a);
+ 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_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020643100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020643100000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_result[3]) = 0xa90896a400000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xa90896a400000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003f003f003f00;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003f003f003f00;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsll_v (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c
new file mode 100644
index 0000000..340f769
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c
@@ -0,0 +1,64 @@
+/* { 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]) = 0x0000000007d0d0d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000007d0d0d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000007d0d0d00000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000007d0d0d00000;
+ __m256i_out = __lasx_xvbsrl_v (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fffffffe000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fffffffe000000;
+ __m256i_out = __lasx_xvbsrl_v (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000018803100188;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000018803100188;
+ *((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_xvbsrl_v (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvbsrl_v (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclo.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclo.c
new file mode 100644
index 0000000..dbc52f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclo.c
@@ -0,0 +1,449 @@
+/* { 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_result[3]) = 0x0802010000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0806030008080001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0801010108010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0806000008060302;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfafafafafafafafa;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fefefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fff0fff00000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fff0fff00000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fc03fc01fc03fc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fc03fc01fc03fc;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000200000001e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000200000001e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000808;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd04752cdd5543b56;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6906e68064f3d78b;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd04752cdd5543b56;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6906e68064f3d78b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000300000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000300000002;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc0000000c0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc000000080400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc0000000c0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc000000080400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000000010000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010000100000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000004000000020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000004000000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ 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_result[3]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000100010;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclo_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclz.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclz.c
new file mode 100644
index 0000000..89191c4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvclz.c
@@ -0,0 +1,504 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04481940fbb7e6bf;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf2781966e6991966;
+ *((unsigned long *)&__m256i_op0[1]) = 0x51258839aeda77c6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xcf25f0e00f1ff0e0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0501030100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001030100000301;
+ *((unsigned long *)&__m256i_result[1]) = 0x0102000200000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000004030000;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000f0000000f;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000900000000;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvclz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080807;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080807;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100001;
+ __m256i_out = __lasx_xvclz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008000000080000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000000080000;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000100010;
+ __m256i_out = __lasx_xvclz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000018;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000019;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000200000001e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000019;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0b085bfc00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0b004bc000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0b085bfc00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0b004bc000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0408010008080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0408010008080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000012;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0408010008080808;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0408010008080808;
+ *((unsigned long *)&__m256i_result[3]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x0504070804040404;
+ *((unsigned long *)&__m256i_result[1]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_result[0]) = 0x0504070804040404;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002ffff0000ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002ffff0000ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000e;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000032;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000003c000000032;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[2]) = 0x001000100010000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[0]) = 0x001000060010000a;
+ __m256i_out = __lasx_xvclz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000c;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000008080800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000008080800;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004001000100004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000400100010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004001000100004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000400100010;
+ __m256i_out = __lasx_xvclz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000020;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007f8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000007f8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000029;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000029;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvclz_w (__m256i_op0);
+ 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_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000027;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvclz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvclz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
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 0000000..0d7c677
--- /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 0000000..fd8b6d3
--- /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-xvext2xv-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c
new file mode 100644
index 0000000..94f3101
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2b2b2b2b1bd5d5d6;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2a2a2a2af2d5d5d6;
+ *((unsigned long *)&__m256i_op0[1]) = 0x2b2b2b2b1bd5d5d6;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2a2a2a2af2d5d5d6;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002a0000002a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002a0000002a;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff2ffffffd5;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffd5ffffffd6;
+ __m256i_out = __lasx_vext2xv_w_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_w_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff0;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000017f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000017f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000017f;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff00fff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff00fffffff0;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffe20;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001dfffffe1f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0200000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0200000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000498000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x00004843ffffffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000498000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000684000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000017;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00020002ff820002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00020002ff820002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffff82;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd100645944100004;
+ *((unsigned long *)&__m256i_op0[2]) = 0xd1908469108400d1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000404040104;
+ *((unsigned long *)&__m256i_op0[0]) = 0xd1108199714910f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000004040104;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffd1108199;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000714910f9;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c
new file mode 100644
index 0000000..d93201b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c
@@ -0,0 +1,669 @@
+/* { 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]) = 0x639c3fffb5dffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb8c7800094400001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0063009c003f00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00b500df00ff00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x00b800c700800000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0094004000000001;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00aa00ab00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00aa00ab00ff00ff;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01ff01ff01c0003e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01ff01ff01c0003e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000100ff000100ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100c00000003e;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000f0001000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000f0001000d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000f0001000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000f0001000d;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000000d;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_vext2xv_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000005f000000f0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000f9;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000f3;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000029;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000029;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_vext2xv_wu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fd;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff7fff7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff7f027f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff7f0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00fe7f027f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000007f;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000003fbfc04;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001fdfe02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000003fbfc04;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001fdfe02;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fd;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ef;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002e0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002e0000fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000002e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000002e;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000002e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000fffe;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcfee0fe00ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffcfee0fe00ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffc0000fee0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fe000000ffe0;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000001b;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001b;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000fd00000000;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000017f7f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000017f7f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000017f00007f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff00000000ff;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000498000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x000048430000ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000498000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000684000000000;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff7edfffff7edf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff7edfffff7edf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00007edd;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00007ed3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00007edf;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00007edf;
+ __m256i_out = __lasx_vext2xv_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000801380f380fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000801380f300fb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008013;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000080f3;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fb;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000007f;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_vext2xv_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c
new file mode 100644
index 0000000..9fb4e3f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c
@@ -0,0 +1,350 @@
+/* { 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]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[3]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_result[2]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_result[1]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_result[0]) = 0x005500550055ffab;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[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_xvexth_h_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffec;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffebd8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffec;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffebd8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffec;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffec;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffff1cffffff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff1cffffff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffff1cffffff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff1cffffff1c;
+ __m256i_out = __lasx_xvexth_w_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001010101;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvexth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000007f00340040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000007f000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffec;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffec;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00080000002c0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0008000000080000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00080000002c0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0008000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00080000002c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00080000002c0000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c
new file mode 100644
index 0000000..fe6ff15
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c
@@ -0,0 +1,592 @@
+/* { 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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004500f300fb;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x004100df00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00c000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x004100df00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00c000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f00ff007f00ff;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200010002;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ 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_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0080000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_hu_bu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffff8046867f79;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffff328dfff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6651bfff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f3280000dfff;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000fffe;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000104000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000104000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000165a;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001010600000106;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001010600000106;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007cfcfd80000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007cfcfd80000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000020ff790020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000020ff790020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000001ff000003fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000001ff000003fe;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000010100000101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010100000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010100000101;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvexth_wu_hu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_du_wu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x36722a7e66972cd6;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff5f5c;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000005e;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff0000;
+ __m256i_out = __lasx_xvexth_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
new file mode 100644
index 0000000..c0d3e8e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
@@ -0,0 +1,86 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ef878780000009;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000201220001011c;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
new file mode 100644
index 0000000..8c7ab4e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
@@ -0,0 +1,163 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010100005400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010100005400;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextrins.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextrins.c
new file mode 100644
index 0000000..8e61f1c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextrins.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000020202;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000002020202;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000020200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbf28b0686066be60;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff49fe4200000000;
+ __m256i_out = __lasx_xvextrins_d (__m256i_op0, __m256i_op1, 0xbf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0xfe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvextrins_d (__m256i_op0, __m256i_op1, 0x9f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvextrins_d (__m256i_op0, __m256i_op1, 0xc4);
+ 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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextrins_d (__m256i_op0, __m256i_op1, 0x99);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000fffffefc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000fffffffe0;
+ *((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]) = 0x0000000fffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000fffffffff;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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_xvextrins_w (__m256i_op0, __m256i_op1, 0x8f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000061;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000061;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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_xvextrins_h (__m256i_op0, __m256i_op1, 0x83);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007bbbbbbb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007bbbbbbb;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0x8d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvextrins_w (__m256i_op0, __m256i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvextrins_h (__m256i_op0, __m256i_op1, 0xda);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007f7f00007f7f;
+ *((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]) = 0xfffffff900000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007f7f00007f00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0x87);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0xa5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op0[2]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op0[0]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_result[2]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000027262524;
+ *((unsigned long *)&__m256i_result[0]) = 0x232221201f1e1d1c;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0xbd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000080000000;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvextrins_d (__m256i_op0, __m256i_op1, 0xb8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffc6ffc6003a003a;
+ *((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]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc6ffc6003a003a;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0x54);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvextrins_b (__m256i_op0, __m256i_op1, 0xe7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100010001000100;
+ *((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]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00010001000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00010001000100;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0x7b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0xffffffff0000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextrins_d (__m256i_op0, __m256i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvextrins_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff01;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0x6f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000600000006;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0xf6);
+ 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]) = 0x00000000007f8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000007f8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0x7b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff00fff8ffc0;
+ __m256i_out = __lasx_xvextrins_b (__m256i_op0, __m256i_op1, 0x82);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002000000;
+ __m256i_out = __lasx_xvextrins_h (__m256i_op0, __m256i_op1, 0x43);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_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]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextrins_d (__m256i_op0, __m256i_op1, 0x7);
+ 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]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff007ffd61;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff007ffd61;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe97c020010001;
+ __m256i_out = __lasx_xvextrins_w (__m256i_op0, __m256i_op1, 0x62);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c
new file mode 100644
index 0000000..657a19e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.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 *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffe06df0d7;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffbe8b470f;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffbe8b470f;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7fffffffffffffff;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_result[2]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_result[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256d_result[0]) = 0x00007fff00007fff;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000f000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000f000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_result[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_result[0]) = 0x7fffffffa2beb040;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000001c000000134;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000001c000000134;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000001c000000134;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000001c000000134;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000038000000268;
+ *((unsigned long *)&__m256d_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000038000000268;
+ *((unsigned long *)&__m256d_result[0]) = 0x7fff7fff7fff7fff;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000001010100;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000405;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000001010100;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000405;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000040;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256d_result[3]) = 0x00000000ff890000;
+ *((unsigned long *)&__m256d_result[2]) = 0x00000000ff790000;
+ *((unsigned long *)&__m256d_result[1]) = 0x00000000ff890000;
+ *((unsigned long *)&__m256d_result[0]) = 0x00000000ff790000;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000000000006d;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000000000006d;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000000010006d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000080040;
+ *((unsigned long *)&__m256d_result[3]) = 0x00000000000000ad;
+ *((unsigned long *)&__m256d_result[2]) = 0x00000000001800ad;
+ *((unsigned long *)&__m256d_result[1]) = 0x00000000000000ad;
+ *((unsigned long *)&__m256d_result[0]) = 0x00000000001800ad;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x2020000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x2020000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7fffffffffffffff;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff8000;
+ __m256d_out = __lasx_xvfadd_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000400000001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000400000001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000010100000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000010100000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00008000003f0000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00390015003529c1;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00008000003f0000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00390015003529c1;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfmul_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00007ffe81fdfe03;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x80007ffe81fdfe03;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xff00d5007f00ffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xff00d5007f00ffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x7f00d5007f00ffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x7f00ffffff00ffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x7f00d5007f00ffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x7f00ffffff00ffff;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000002;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000002;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffff00000002;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffff00000002;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x00ff00fe00ff00fe;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsub_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256d_op0[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256d_op0[0]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0002555400000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0002555400000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x3f2c678e38d1104c;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x3f2c678e38d1104c;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffe367cc82f8989a;
+ *((unsigned long *)&__m256d_op0[2]) = 0x4f90000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffc3aaa8d58f43c8;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0010000000100000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0010000000100000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0010000000100000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0010000000100000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x41cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41cc5bb8a95fd1eb;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfdiv_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c
new file mode 100644
index 0000000..4002c40
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c
@@ -0,0 +1,911 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0x00000001;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000002;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0x00000001;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000002;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0x00000001;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000002;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0x00000001;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000002;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x40b2bf4d;
+ *((int *)&__m256_op0[6]) = 0x30313031;
+ *((int *)&__m256_op0[5]) = 0x50005000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x40b2bf4d;
+ *((int *)&__m256_op0[2]) = 0x30313031;
+ *((int *)&__m256_op0[1]) = 0x50005000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x22be22be;
+ *((int *)&__m256_op1[5]) = 0x7fff7fff;
+ *((int *)&__m256_op1[4]) = 0xa2bea2be;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x22be22be;
+ *((int *)&__m256_op1[1]) = 0x7fff7fff;
+ *((int *)&__m256_op1[0]) = 0xa2bea2be;
+ *((int *)&__m256_result[7]) = 0x40b2bf4d;
+ *((int *)&__m256_result[6]) = 0x30313031;
+ *((int *)&__m256_result[5]) = 0x7fff7fff;
+ *((int *)&__m256_result[4]) = 0xa2bea2be;
+ *((int *)&__m256_result[3]) = 0x40b2bf4d;
+ *((int *)&__m256_result[2]) = 0x30313031;
+ *((int *)&__m256_result[1]) = 0x7fff7fff;
+ *((int *)&__m256_result[0]) = 0xa2bea2be;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00ff0000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00ff0000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00ff0000;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00ff0000;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000008c;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000008c;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0000008c;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x0000008c;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000118;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000118;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffff8000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffff8000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffff8000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffff8000;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffff0101;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff0101;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffff0101;
+ *((int *)&__m256_result[4]) = 0x00000001;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffff0101;
+ *((int *)&__m256_result[0]) = 0x00000001;
+ __m256_out = __lasx_xvfadd_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x10101011;
+ *((int *)&__m256_op1[4]) = 0x10101011;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x11111112;
+ *((int *)&__m256_op1[0]) = 0x11111112;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00060000;
+ *((int *)&__m256_op0[6]) = 0x00040000;
+ *((int *)&__m256_op0[5]) = 0x00020000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00060000;
+ *((int *)&__m256_op0[2]) = 0x00040000;
+ *((int *)&__m256_op0[1]) = 0x00020000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00060000;
+ *((int *)&__m256_op1[6]) = 0x00040000;
+ *((int *)&__m256_op1[5]) = 0x00020000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00060000;
+ *((int *)&__m256_op1[2]) = 0x00040000;
+ *((int *)&__m256_op1[1]) = 0x00020000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x000000ff;
+ *((int *)&__m256_op0[4]) = 0x000000ff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x000000ff;
+ *((int *)&__m256_op0[0]) = 0x000000ff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000101;
+ *((int *)&__m256_op1[4]) = 0x00000101;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000101;
+ *((int *)&__m256_op1[0]) = 0x00000101;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmul_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffff001f;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x007fe268;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffff001f;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x007fe268;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0xffff001f;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x007fe268;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0xffff001f;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x007fe268;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0xffff001f;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0xffff001f;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x7f800000;
+ *((int *)&__m256_op1[6]) = 0x7f800000;
+ *((int *)&__m256_op1[5]) = 0x7f800000;
+ *((int *)&__m256_op1[4]) = 0x7f800000;
+ *((int *)&__m256_op1[3]) = 0x7f800000;
+ *((int *)&__m256_op1[2]) = 0x7f800000;
+ *((int *)&__m256_op1[1]) = 0x7f800000;
+ *((int *)&__m256_op1[0]) = 0x7f800000;
+ *((int *)&__m256_result[7]) = 0xff800000;
+ *((int *)&__m256_result[6]) = 0xff800000;
+ *((int *)&__m256_result[5]) = 0xff800000;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0xff800000;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0xff800000;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x02a54290;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x02a54290;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x02a54290;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0154dc84;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x02a54290;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000089;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x82a54290;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x028aa700;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x82a54290;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x02a54287;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00004200;
+ *((int *)&__m256_op0[6]) = 0x80000000;
+ *((int *)&__m256_op0[5]) = 0x5fff5fff;
+ *((int *)&__m256_op0[4]) = 0x607f0000;
+ *((int *)&__m256_op0[3]) = 0x00004200;
+ *((int *)&__m256_op0[2]) = 0x80000000;
+ *((int *)&__m256_op0[1]) = 0x5fff5fff;
+ *((int *)&__m256_op0[0]) = 0x607f0000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00004200;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x5fff5fff;
+ *((int *)&__m256_result[4]) = 0x607f0000;
+ *((int *)&__m256_result[3]) = 0x00004200;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x5fff5fff;
+ *((int *)&__m256_result[0]) = 0x607f0000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00800080;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000202;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00800080;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000202;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00800080;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000202;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00800080;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000202;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffefffe;
+ *((int *)&__m256_op0[6]) = 0xfffefffe;
+ *((int *)&__m256_op0[5]) = 0xfffefffe;
+ *((int *)&__m256_op0[4]) = 0xfffefffe;
+ *((int *)&__m256_op0[3]) = 0xfffefffe;
+ *((int *)&__m256_op0[2]) = 0xfffefffe;
+ *((int *)&__m256_op0[1]) = 0xfffefffe;
+ *((int *)&__m256_op0[0]) = 0xfffefffe;
+ *((int *)&__m256_op1[7]) = 0x000023a3;
+ *((int *)&__m256_op1[6]) = 0x00003fff;
+ *((int *)&__m256_op1[5]) = 0x000023a3;
+ *((int *)&__m256_op1[4]) = 0x00003fef;
+ *((int *)&__m256_op1[3]) = 0x000023a3;
+ *((int *)&__m256_op1[2]) = 0x00003fff;
+ *((int *)&__m256_op1[1]) = 0x000023a3;
+ *((int *)&__m256_op1[0]) = 0x00003fef;
+ *((int *)&__m256_result[7]) = 0xfffefffe;
+ *((int *)&__m256_result[6]) = 0xfffefffe;
+ *((int *)&__m256_result[5]) = 0xfffefffe;
+ *((int *)&__m256_result[4]) = 0xfffefffe;
+ *((int *)&__m256_result[3]) = 0xfffefffe;
+ *((int *)&__m256_result[2]) = 0xfffefffe;
+ *((int *)&__m256_result[1]) = 0xfffefffe;
+ *((int *)&__m256_result[0]) = 0xfffefffe;
+ __m256_out = __lasx_xvfsub_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x002a542a;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x002a542a;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7fc00000;
+ *((int *)&__m256_result[4]) = 0x7fc00000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7fc00000;
+ *((int *)&__m256_result[0]) = 0x7fc00000;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00fe00fe;
+ *((int *)&__m256_op0[6]) = 0x00fe00fe;
+ *((int *)&__m256_op0[5]) = 0x00fe00fe;
+ *((int *)&__m256_op0[4]) = 0x00fe00fe;
+ *((int *)&__m256_op0[3]) = 0x00fe00fe;
+ *((int *)&__m256_op0[2]) = 0x00fe00fe;
+ *((int *)&__m256_op0[1]) = 0x00fe00fe;
+ *((int *)&__m256_op0[0]) = 0x00fe00fe;
+ *((int *)&__m256_op1[7]) = 0x00fe00fe;
+ *((int *)&__m256_op1[6]) = 0x00fe00fe;
+ *((int *)&__m256_op1[5]) = 0x00fe00fe;
+ *((int *)&__m256_op1[4]) = 0x00fe00fe;
+ *((int *)&__m256_op1[3]) = 0x00fe00fe;
+ *((int *)&__m256_op1[2]) = 0x00fe00fe;
+ *((int *)&__m256_op1[1]) = 0x00fe00fe;
+ *((int *)&__m256_op1[0]) = 0x00fe00fe;
+ *((int *)&__m256_result[7]) = 0x3f800000;
+ *((int *)&__m256_result[6]) = 0x3f800000;
+ *((int *)&__m256_result[5]) = 0x3f800000;
+ *((int *)&__m256_result[4]) = 0x3f800000;
+ *((int *)&__m256_result[3]) = 0x3f800000;
+ *((int *)&__m256_result[2]) = 0x3f800000;
+ *((int *)&__m256_result[1]) = 0x3f800000;
+ *((int *)&__m256_result[0]) = 0x3f800000;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7fc00000;
+ *((int *)&__m256_result[6]) = 0x7fc00000;
+ *((int *)&__m256_result[5]) = 0x7fc00000;
+ *((int *)&__m256_result[4]) = 0x7fc00000;
+ *((int *)&__m256_result[3]) = 0x7fc00000;
+ *((int *)&__m256_result[2]) = 0x7fc00000;
+ *((int *)&__m256_result[1]) = 0x7fc00000;
+ *((int *)&__m256_result[0]) = 0x7fc00000;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x803f6004;
+ *((int *)&__m256_op0[4]) = 0x1f636003;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x803f6004;
+ *((int *)&__m256_op0[0]) = 0x1f636003;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x007f0107;
+ *((int *)&__m256_op1[4]) = 0x00c70106;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x007f0107;
+ *((int *)&__m256_op1[0]) = 0x00c70106;
+ *((int *)&__m256_result[7]) = 0x7fc00000;
+ *((int *)&__m256_result[6]) = 0x7fc00000;
+ *((int *)&__m256_result[5]) = 0xbeff7cfd;
+ *((int *)&__m256_result[4]) = 0x5e123f94;
+ *((int *)&__m256_result[3]) = 0x7fc00000;
+ *((int *)&__m256_result[2]) = 0x7fc00000;
+ *((int *)&__m256_result[1]) = 0xbeff7cfd;
+ *((int *)&__m256_result[0]) = 0x5e123f94;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000008;
+ *((int *)&__m256_op0[6]) = 0x60601934;
+ *((int *)&__m256_op0[5]) = 0x00000008;
+ *((int *)&__m256_op0[4]) = 0x00200028;
+ *((int *)&__m256_op0[3]) = 0x00000008;
+ *((int *)&__m256_op0[2]) = 0x60601934;
+ *((int *)&__m256_op0[1]) = 0x00000008;
+ *((int *)&__m256_op0[0]) = 0x00200028;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfdiv_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c
new file mode 100644
index 0000000..5d5b4c4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c
@@ -0,0 +1,152 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#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 *)&__m256d_op0[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000017f0000017f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256d_op0[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256d_op0[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256d_op0[0]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000400000004000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000400000004000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvfclass_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c
new file mode 100644
index 0000000..888e85b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c
@@ -0,0 +1,95 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#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;
+
+ *((int *)&__m256_op0[7]) = 0xfffffff8;
+ *((int *)&__m256_op0[6]) = 0xffffff08;
+ *((int *)&__m256_op0[5]) = 0x00ff00f8;
+ *((int *)&__m256_op0[4]) = 0x00ffcff8;
+ *((int *)&__m256_op0[3]) = 0xfffffff8;
+ *((int *)&__m256_op0[2]) = 0xffffff08;
+ *((int *)&__m256_op0[1]) = 0x00ff00f8;
+ *((int *)&__m256_op0[0]) = 0x00ffcff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000008000000080;
+ __m256i_out = __lasx_xvfclass_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((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_xvfclass_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000020000000200;
+ __m256i_out = __lasx_xvfclass_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x000000ff;
+ *((int *)&__m256_op0[4]) = 0x000000ff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x000000ff;
+ *((int *)&__m256_op0[0]) = 0x000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000000100;
+ __m256i_out = __lasx_xvfclass_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffffffb;
+ *((int *)&__m256_op0[6]) = 0xfffffffb;
+ *((int *)&__m256_op0[5]) = 0xfffffffb;
+ *((int *)&__m256_op0[4]) = 0xfffffffb;
+ *((int *)&__m256_op0[3]) = 0xfffffffb;
+ *((int *)&__m256_op0[2]) = 0xfffffffb;
+ *((int *)&__m256_op0[1]) = 0xfffffffb;
+ *((int *)&__m256_op0[0]) = 0xfffffffb;
+ *((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_xvfclass_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c
new file mode 100644
index 0000000..fa33723
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c
@@ -0,0 +1,446 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xff56ff55;
+ *((int *)&__m256_op0[4]) = 0xff01ff01;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xff56ff55;
+ *((int *)&__m256_op0[0]) = 0xff01ff01;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x0000abff;
+ *((int *)&__m256_op1[4]) = 0x0000abff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x0000abff;
+ *((int *)&__m256_op1[0]) = 0x0000abff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000001;
+ *((int *)&__m256_op0[4]) = 0x0000000a;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000001;
+ *((int *)&__m256_op0[0]) = 0x0000000a;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000040;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x5d20a0a1;
+ *((int *)&__m256_op1[6]) = 0x5d20a0a1;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x5d20a0a1;
+ *((int *)&__m256_op1[2]) = 0x5d20a0a1;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0003ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffff8000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffff8000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffff8000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff8000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xe07de080;
+ *((int *)&__m256_op0[4]) = 0x1f20607a;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xe07de080;
+ *((int *)&__m256_op0[0]) = 0x1f20607a;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xe07de080;
+ *((int *)&__m256_op1[4]) = 0x1f20607a;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xe07de080;
+ *((int *)&__m256_op1[0]) = 0x1f20607a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xe07de080;
+ *((int *)&__m256_op1[4]) = 0x1f20607a;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xe07de080;
+ *((int *)&__m256_op1[0]) = 0x1f20607a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000010;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000010;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xa5a5a5a5a5a5a5a5;
+ *((unsigned long *)&__m256d_op1[2]) = 0xa5a5a5a5a5a99e03;
+ *((unsigned long *)&__m256d_op1[1]) = 0xa5a5a5a5a5a5a5a5;
+ *((unsigned long *)&__m256d_op1[0]) = 0xa5a5a5a5a5a99e03;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x24342434ffff2435;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x24342434ffff2435;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_caf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c
new file mode 100644
index 0000000..6d6649f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c
@@ -0,0 +1,977 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00010101;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00010100;
+ *((int *)&__m256_op0[1]) = 0x00010000;
+ *((int *)&__m256_op0[0]) = 0x01000100;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xbf7f7fff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xe651bfff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x000000ff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x000000ff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0000ffff;
+ *((int *)&__m256_op1[6]) = 0xc0008001;
+ *((int *)&__m256_op1[5]) = 0x0000ffff;
+ *((int *)&__m256_op1[4]) = 0xc0008001;
+ *((int *)&__m256_op1[3]) = 0x0000ffff;
+ *((int *)&__m256_op1[2]) = 0xc0008001;
+ *((int *)&__m256_op1[1]) = 0x0000ffff;
+ *((int *)&__m256_op1[0]) = 0xc0008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffc6ffc6;
+ *((int *)&__m256_op0[6]) = 0x003a003a;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffc6ffc6;
+ *((int *)&__m256_op0[2]) = 0x003a003a;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x71717171;
+ *((int *)&__m256_op1[6]) = 0x71010101;
+ *((int *)&__m256_op1[5]) = 0x8e8e8e8e;
+ *((int *)&__m256_op1[4]) = 0x8f00ffff;
+ *((int *)&__m256_op1[3]) = 0x71717171;
+ *((int *)&__m256_op1[2]) = 0x71010101;
+ *((int *)&__m256_op1[1]) = 0x8e8e8e8e;
+ *((int *)&__m256_op1[0]) = 0x8f00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x000e000e;
+ *((int *)&__m256_op1[4]) = 0x000e000e;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x000e000e;
+ *((int *)&__m256_op1[0]) = 0x000e000e;
+ *((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_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000043;
+ *((int *)&__m256_op0[4]) = 0x0207f944;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000043;
+ *((int *)&__m256_op0[0]) = 0x0207f944;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((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_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000001;
+ *((int *)&__m256_op1[6]) = 0x9ffdf403;
+ *((int *)&__m256_op1[5]) = 0x00000001;
+ *((int *)&__m256_op1[4]) = 0x1ffd97c3;
+ *((int *)&__m256_op1[3]) = 0x00000001;
+ *((int *)&__m256_op1[2]) = 0x9ffdf403;
+ *((int *)&__m256_op1[1]) = 0x00000001;
+ *((int *)&__m256_op1[0]) = 0x1ffd97c3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x7fff7fff;
+ *((int *)&__m256_op0[4]) = 0x7fff7fff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x7fff7fff;
+ *((int *)&__m256_op0[0]) = 0x7fff7fff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000808;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xbea2e127;
+ *((int *)&__m256_op1[6]) = 0xc046721f;
+ *((int *)&__m256_op1[5]) = 0x1729c073;
+ *((int *)&__m256_op1[4]) = 0x816edebe;
+ *((int *)&__m256_op1[3]) = 0xde91f010;
+ *((int *)&__m256_op1[2]) = 0x000006f9;
+ *((int *)&__m256_op1[1]) = 0x5ef1f90e;
+ *((int *)&__m256_op1[0]) = 0xfefaf30d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000200;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000200;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000200;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000200;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000009;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000009;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000009;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffb80000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffb80000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ffff;
+ *((int *)&__m256_op0[6]) = 0x0000ffff;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x0000ffff;
+ *((int *)&__m256_op0[2]) = 0x0000ffff;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfff0fff0;
+ *((int *)&__m256_op0[6]) = 0xff01ff01;
+ *((int *)&__m256_op0[5]) = 0xfff0fff0;
+ *((int *)&__m256_op0[4]) = 0xfff0fff0;
+ *((int *)&__m256_op0[3]) = 0xfff0fff0;
+ *((int *)&__m256_op0[2]) = 0xff01ff01;
+ *((int *)&__m256_op0[1]) = 0xfff0fff0;
+ *((int *)&__m256_op0[0]) = 0xfff0fff0;
+ *((int *)&__m256_op1[7]) = 0xffefffef;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xffefffef;
+ *((int *)&__m256_op1[4]) = 0xffefffef;
+ *((int *)&__m256_op1[3]) = 0xffefffef;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffefffef;
+ *((int *)&__m256_op1[0]) = 0xffefffef;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0000ffb1;
+ *((int *)&__m256_op1[6]) = 0x0001ff8f;
+ *((int *)&__m256_op1[5]) = 0x0001004c;
+ *((int *)&__m256_op1[4]) = 0x0001ff87;
+ *((int *)&__m256_op1[3]) = 0x0000ffb1;
+ *((int *)&__m256_op1[2]) = 0x0001ff8f;
+ *((int *)&__m256_op1[1]) = 0x0001004c;
+ *((int *)&__m256_op1[0]) = 0x0001ff87;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00010001;
+ *((int *)&__m256_op1[6]) = 0x00010001;
+ *((int *)&__m256_op1[5]) = 0x00010001;
+ *((int *)&__m256_op1[4]) = 0x00010001;
+ *((int *)&__m256_op1[3]) = 0x00010001;
+ *((int *)&__m256_op1[2]) = 0x00010001;
+ *((int *)&__m256_op1[1]) = 0x00010001;
+ *((int *)&__m256_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffff0000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffff0000;
+ *((int *)&__m256_op0[4]) = 0xffff0000;
+ *((int *)&__m256_op0[3]) = 0xffff0000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff0000;
+ *((int *)&__m256_op0[0]) = 0xffff0000;
+ *((int *)&__m256_op1[7]) = 0x007f8080;
+ *((int *)&__m256_op1[6]) = 0x007f007f;
+ *((int *)&__m256_op1[5]) = 0x007f8080;
+ *((int *)&__m256_op1[4]) = 0x007f007f;
+ *((int *)&__m256_op1[3]) = 0x007f8080;
+ *((int *)&__m256_op1[2]) = 0x007f007f;
+ *((int *)&__m256_op1[1]) = 0x007f8080;
+ *((int *)&__m256_op1[0]) = 0x007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000033;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000033;
+ *((int *)&__m256_op1[7]) = 0x00004200;
+ *((int *)&__m256_op1[6]) = 0x80000000;
+ *((int *)&__m256_op1[5]) = 0x5fff5fff;
+ *((int *)&__m256_op1[4]) = 0x607f0000;
+ *((int *)&__m256_op1[3]) = 0x00004200;
+ *((int *)&__m256_op1[2]) = 0x80000000;
+ *((int *)&__m256_op1[1]) = 0x5fff5fff;
+ *((int *)&__m256_op1[0]) = 0x607f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x7fff8000;
+ *((int *)&__m256_op1[6]) = 0x7fff0000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00008000;
+ *((int *)&__m256_op1[3]) = 0x7fff8000;
+ *((int *)&__m256_op1[2]) = 0x7fff0000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00008000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x00100010;
+ *((int *)&__m256_op1[6]) = 0x00030000;
+ *((int *)&__m256_op1[5]) = 0x00100010;
+ *((int *)&__m256_op1[4]) = 0x00030000;
+ *((int *)&__m256_op1[3]) = 0x00100010;
+ *((int *)&__m256_op1[2]) = 0x00030000;
+ *((int *)&__m256_op1[1]) = 0x00100010;
+ *((int *)&__m256_op1[0]) = 0x00030000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xf90c0c0c00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0ca40c0c0c0c0cc0;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0c0c0c0c0cb60cc0;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfbe0b80c960c96d0;
+ *((unsigned long *)&__m256d_op1[3]) = 0x1b9763952fc4c101;
+ *((unsigned long *)&__m256d_op1[2]) = 0xe37affb42fc05f69;
+ *((unsigned long *)&__m256d_op1[1]) = 0x18b988e64facb558;
+ *((unsigned long *)&__m256d_op1[0]) = 0xe5fb66c81da8e5bb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x001e001ea1bfa1bf;
+ *((unsigned long *)&__m256d_op0[2]) = 0x001e001e83e5422e;
+ *((unsigned long *)&__m256d_op0[1]) = 0x001e001ea1bfa1bf;
+ *((unsigned long *)&__m256d_op0[0]) = 0x011f011f0244420e;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffe00f7ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffffffffff629d7;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffe00f7ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffffffffff629d7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_op1[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_op1[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op0[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op0[0]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x41dffbffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffff00ff800000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x41dffbffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffff00ff800000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffe6ffe6e6800001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x19660019ff806680;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffe6ffe6e6800001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x19660019ff806680;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((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_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000010100000101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000010100000101;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_ceq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m256d_op1[3]) = 0x45d5555545d55555;
+ *((unsigned long *)&__m256d_op1[2]) = 0x74555555e8aaaaaa;
+ *((unsigned long *)&__m256d_op1[1]) = 0x45d5555545d55555;
+ *((unsigned long *)&__m256d_op1[0]) = 0x74555555e8aaaaaa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0003030300000100;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op1[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op1[0]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c
new file mode 100644
index 0000000..a64dd75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c
@@ -0,0 +1,759 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0018796d;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00fffb04;
+ *((int *)&__m256_op0[6]) = 0x02fddf20;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00fffb04;
+ *((int *)&__m256_op0[2]) = 0x02fddf20;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x41dfffc0;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x41dfffdf;
+ *((int *)&__m256_op1[2]) = 0xffc00000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffee;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffee;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffee;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffee;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x01fe007a;
+ *((int *)&__m256_op0[6]) = 0x01c40110;
+ *((int *)&__m256_op0[5]) = 0x019d00a2;
+ *((int *)&__m256_op0[4]) = 0x0039fff9;
+ *((int *)&__m256_op0[3]) = 0x01fe007a;
+ *((int *)&__m256_op0[2]) = 0x01c40110;
+ *((int *)&__m256_op0[1]) = 0x019d00a2;
+ *((int *)&__m256_op0[0]) = 0x003a0000;
+ *((int *)&__m256_op1[7]) = 0x0000fffe;
+ *((int *)&__m256_op1[6]) = 0x00800022;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x0000fffe;
+ *((int *)&__m256_op1[2]) = 0x00800022;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x7fff7ffe;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x7fff7ffe;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000002;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000002;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000002;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000002;
+ *((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_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x04000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x04000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x04000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x04000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000040;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000040;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00010001;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00010001;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00010001;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256d_op0[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256d_op0[1]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256d_op0[0]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000007773;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000003373;
+ *((unsigned long *)&__m256d_op1[3]) = 0x1616161616161616;
+ *((unsigned long *)&__m256d_op1[2]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7ffe16167f161616;
+ *((unsigned long *)&__m256d_op1[0]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000007dfdff4b;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010183f9999b;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[1]) = 0x01010101d58f43c9;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0001000100010001;
+ *((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_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0100000001000100;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000002070145;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000002070145;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x1b976395;
+ *((int *)&__m256_op0[6]) = 0x2fc4c101;
+ *((int *)&__m256_op0[5]) = 0xe37affb4;
+ *((int *)&__m256_op0[4]) = 0x2fc05f69;
+ *((int *)&__m256_op0[3]) = 0x18b988e6;
+ *((int *)&__m256_op0[2]) = 0x4facb558;
+ *((int *)&__m256_op0[1]) = 0xe5fb66c8;
+ *((int *)&__m256_op0[0]) = 0x1da8e5bb;
+ *((int *)&__m256_op1[7]) = 0x01a72334;
+ *((int *)&__m256_op1[6]) = 0xffff00ff;
+ *((int *)&__m256_op1[5]) = 0xff4f6838;
+ *((int *)&__m256_op1[4]) = 0xff937648;
+ *((int *)&__m256_op1[3]) = 0x00a2afb7;
+ *((int *)&__m256_op1[2]) = 0xfff00ecb;
+ *((int *)&__m256_op1[1]) = 0xffce110f;
+ *((int *)&__m256_op1[0]) = 0x004658c7;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00001000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00001000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ff00;
+ *((int *)&__m256_op0[6]) = 0x0000ffff;
+ *((int *)&__m256_op0[5]) = 0x000000ff;
+ *((int *)&__m256_op0[4]) = 0x000000ff;
+ *((int *)&__m256_op0[3]) = 0x0000ff00;
+ *((int *)&__m256_op0[2]) = 0x0000ffff;
+ *((int *)&__m256_op0[1]) = 0x000000ff;
+ *((int *)&__m256_op0[0]) = 0x000000ff;
+ *((int *)&__m256_op1[7]) = 0x0000ffee;
+ *((int *)&__m256_op1[6]) = 0x0000ff4c;
+ *((int *)&__m256_op1[5]) = 0x0000ff05;
+ *((int *)&__m256_op1[4]) = 0x0000ff3c;
+ *((int *)&__m256_op1[3]) = 0x0000fff9;
+ *((int *)&__m256_op1[2]) = 0x0000ff78;
+ *((int *)&__m256_op1[1]) = 0x0000ffa8;
+ *((int *)&__m256_op1[0]) = 0x0000ff31;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffff0000;
+ *((int *)&__m256_op1[4]) = 0xffff0000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffff0000;
+ *((int *)&__m256_op1[0]) = 0xffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ff01;
+ *((int *)&__m256_op0[6]) = 0x00ff0000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ff01;
+ *((int *)&__m256_op0[3]) = 0x0000ff01;
+ *((int *)&__m256_op0[2]) = 0x00ff0000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ff01;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00010000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00010000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x02000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x02000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x01010000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x01010000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffff0101;
+ *((int *)&__m256_op1[4]) = 0x00000001;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffff0101;
+ *((int *)&__m256_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffffffb;
+ *((int *)&__m256_op0[6]) = 0xfffffffb;
+ *((int *)&__m256_op0[5]) = 0xfffffffb;
+ *((int *)&__m256_op0[4]) = 0xfffffffb;
+ *((int *)&__m256_op0[3]) = 0xfffffffb;
+ *((int *)&__m256_op0[2]) = 0xfffffffb;
+ *((int *)&__m256_op0[1]) = 0xfffffffb;
+ *((int *)&__m256_op0[0]) = 0xfffffffb;
+ *((int *)&__m256_op1[7]) = 0x0000ffff;
+ *((int *)&__m256_op1[6]) = 0x0001000e;
+ *((int *)&__m256_op1[5]) = 0x0000ffff;
+ *((int *)&__m256_op1[4]) = 0x0000ffff;
+ *((int *)&__m256_op1[3]) = 0x0000ffff;
+ *((int *)&__m256_op1[2]) = 0x0000ffff;
+ *((int *)&__m256_op1[1]) = 0x0000ffff;
+ *((int *)&__m256_op1[0]) = 0x0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x8080808280808082;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8080808280808082;
+ *((unsigned long *)&__m256d_op0[1]) = 0x8080808280808080;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8080808280808082;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffeffff10000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffeffff10000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c
new file mode 100644
index 0000000..733cc00
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c
@@ -0,0 +1,675 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xfe02fe02;
+ *((int *)&__m256_op0[2]) = 0xfee5fe22;
+ *((int *)&__m256_op0[1]) = 0xff49fe42;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0000ffff;
+ *((int *)&__m256_op1[6]) = 0x0000ff80;
+ *((int *)&__m256_op1[5]) = 0x00004686;
+ *((int *)&__m256_op1[4]) = 0x00007f79;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0x0000ffff;
+ *((int *)&__m256_op1[1]) = 0x0000f328;
+ *((int *)&__m256_op1[0]) = 0x0000dfff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x01000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x01000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffff80cb;
+ *((int *)&__m256_op1[6]) = 0xfffffdf8;
+ *((int *)&__m256_op1[5]) = 0x00000815;
+ *((int *)&__m256_op1[4]) = 0x00000104;
+ *((int *)&__m256_op1[3]) = 0xffffffa4;
+ *((int *)&__m256_op1[2]) = 0xfffffffd;
+ *((int *)&__m256_op1[1]) = 0x00000007;
+ *((int *)&__m256_op1[0]) = 0x00000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff0000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00003f3f;
+ *((int *)&__m256_op1[4]) = 0xc6c68787;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00003f3f;
+ *((int *)&__m256_op1[0]) = 0x87870000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000002;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0x0101ffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0x0101ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x01000100;
+ *((int *)&__m256_op0[6]) = 0x01000100;
+ *((int *)&__m256_op0[5]) = 0x01000100;
+ *((int *)&__m256_op0[4]) = 0x01000100;
+ *((int *)&__m256_op0[3]) = 0x01000100;
+ *((int *)&__m256_op0[2]) = 0x01000100;
+ *((int *)&__m256_op0[1]) = 0x01000100;
+ *((int *)&__m256_op0[0]) = 0x01000100;
+ *((int *)&__m256_op1[7]) = 0x7f800000;
+ *((int *)&__m256_op1[6]) = 0x7f800000;
+ *((int *)&__m256_op1[5]) = 0x62d2acee;
+ *((int *)&__m256_op1[4]) = 0x7fc00000;
+ *((int *)&__m256_op1[3]) = 0x7f800000;
+ *((int *)&__m256_op1[2]) = 0x7f800000;
+ *((int *)&__m256_op1[1]) = 0x62d2acee;
+ *((int *)&__m256_op1[0]) = 0x7fc00000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ff01;
+ *((int *)&__m256_op0[6]) = 0x00ff0000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ff01;
+ *((int *)&__m256_op0[3]) = 0x0000ff01;
+ *((int *)&__m256_op0[2]) = 0x00ff0000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ff01;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000808;
+ *((int *)&__m256_op1[4]) = 0x00000808;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000808;
+ *((int *)&__m256_op1[0]) = 0x00000808;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffff8000;
+ *((int *)&__m256_op0[5]) = 0x7efefefe;
+ *((int *)&__m256_op0[4]) = 0x80ffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x7efefefe;
+ *((int *)&__m256_op0[0]) = 0x80ffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_clt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x0001ffaa;
+ *((int *)&__m256_op1[6]) = 0x0000040e;
+ *((int *)&__m256_op1[5]) = 0x00007168;
+ *((int *)&__m256_op1[4]) = 0x00007bb6;
+ *((int *)&__m256_op1[3]) = 0x0001ffe8;
+ *((int *)&__m256_op1[2]) = 0x0001fe9c;
+ *((int *)&__m256_op1[1]) = 0x00002282;
+ *((int *)&__m256_op1[0]) = 0x00001680;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x55555501;
+ *((int *)&__m256_op0[4]) = 0xfefefeab;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x55555501;
+ *((int *)&__m256_op0[0]) = 0xfefefeab;
+ *((int *)&__m256_op1[7]) = 0x00000105;
+ *((int *)&__m256_op1[6]) = 0xfffffefb;
+ *((int *)&__m256_op1[5]) = 0xffffff02;
+ *((int *)&__m256_op1[4]) = 0x000000fe;
+ *((int *)&__m256_op1[3]) = 0x00000105;
+ *((int *)&__m256_op1[2]) = 0xfffffefb;
+ *((int *)&__m256_op1[1]) = 0xffffff02;
+ *((int *)&__m256_op1[0]) = 0x000000fe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000080;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000080;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x0000ffce;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000fc7c;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x0000ffce;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000fc7c;
+ *((int *)&__m256_op1[7]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[6]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[5]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[4]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[3]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[2]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[1]) = 0xe7e7e7e7;
+ *((int *)&__m256_op1[0]) = 0xe7e7e7e7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0x0007a861;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0x0007a861;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00100010;
+ *((int *)&__m256_op1[5]) = 0x00100010;
+ *((int *)&__m256_op1[4]) = 0x00100010;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00100010;
+ *((int *)&__m256_op1[1]) = 0x00100010;
+ *((int *)&__m256_op1[0]) = 0x00100010;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x01010101;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x01010101;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x01010101;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x01010101;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_op1[7]) = 0x000001e0;
+ *((int *)&__m256_op1[6]) = 0x01e001e0;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x000001e0;
+ *((int *)&__m256_op1[2]) = 0x01e001e0;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000000000007f;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op1[3]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256d_op1[1]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_clt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0101000001010000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfff1000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfff1000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c
new file mode 100644
index 0000000..1907410
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c
@@ -0,0 +1,872 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x7fff7fff;
+ *((int *)&__m256_op0[4]) = 0x7fff7fff;
+ *((int *)&__m256_op0[3]) = 0x7fff01fd;
+ *((int *)&__m256_op0[2]) = 0x7fff7fff;
+ *((int *)&__m256_op0[1]) = 0x00007fff;
+ *((int *)&__m256_op0[0]) = 0x7fff7fff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xdededede;
+ *((int *)&__m256_op0[6]) = 0xdededede;
+ *((int *)&__m256_op0[5]) = 0xdededede;
+ *((int *)&__m256_op0[4]) = 0xdededede;
+ *((int *)&__m256_op0[3]) = 0xdededede;
+ *((int *)&__m256_op0[2]) = 0xdededede;
+ *((int *)&__m256_op0[1]) = 0xdededede;
+ *((int *)&__m256_op0[0]) = 0xdededede;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000051;
+ *((int *)&__m256_op1[5]) = 0x00001010;
+ *((int *)&__m256_op1[4]) = 0x00000fff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000051;
+ *((int *)&__m256_op1[1]) = 0x00001010;
+ *((int *)&__m256_op1[0]) = 0x00000fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000051;
+ *((int *)&__m256_op0[5]) = 0x00001010;
+ *((int *)&__m256_op0[4]) = 0x00000fff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000051;
+ *((int *)&__m256_op0[1]) = 0x00001010;
+ *((int *)&__m256_op0[0]) = 0x00000fff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ffff;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x0000ffff;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x000007c8;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x000007c8;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x80000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000001f;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000001f;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0000001f;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x0000001f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xfff8ff40;
+ *((int *)&__m256_op0[5]) = 0x0000ff01;
+ *((int *)&__m256_op0[4]) = 0x00090040;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xfff8ff40;
+ *((int *)&__m256_op0[1]) = 0x0000ff01;
+ *((int *)&__m256_op0[0]) = 0x00090040;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xff1cff1c;
+ *((int *)&__m256_op1[6]) = 0xff1cff1c;
+ *((int *)&__m256_op1[5]) = 0xff1cff1c;
+ *((int *)&__m256_op1[4]) = 0xff1cff1c;
+ *((int *)&__m256_op1[3]) = 0xff1cff1c;
+ *((int *)&__m256_op1[2]) = 0xff1cff1c;
+ *((int *)&__m256_op1[1]) = 0xff1cff1c;
+ *((int *)&__m256_op1[0]) = 0xff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00fe01f0;
+ *((int *)&__m256_op0[6]) = 0x00010000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00c40086;
+ *((int *)&__m256_op0[3]) = 0x00fe01f0;
+ *((int *)&__m256_op0[2]) = 0x00010000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00c40086;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x0000ffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x0000ffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x0fff0180;
+ *((int *)&__m256_op0[4]) = 0x0fff0181;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x0fff0180;
+ *((int *)&__m256_op0[0]) = 0x0fff0181;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0003ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xfffffe20;
+ *((int *)&__m256_op0[5]) = 0x0000001d;
+ *((int *)&__m256_op0[4]) = 0xfffffe1f;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x5fa00000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x5fa00000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000004;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00007f95;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000004;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00007f95;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x7f010000;
+ *((int *)&__m256_op0[5]) = 0x00010000;
+ *((int *)&__m256_op0[4]) = 0x00007f7f;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x7f010000;
+ *((int *)&__m256_op0[1]) = 0x00010000;
+ *((int *)&__m256_op0[0]) = 0x00007f7f;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x003f0200;
+ *((int *)&__m256_op0[6]) = 0x01400200;
+ *((int *)&__m256_op0[5]) = 0x003f00ff;
+ *((int *)&__m256_op0[4]) = 0x003f00c4;
+ *((int *)&__m256_op0[3]) = 0x003f0200;
+ *((int *)&__m256_op0[2]) = 0x01400200;
+ *((int *)&__m256_op0[1]) = 0x003f00ff;
+ *((int *)&__m256_op0[0]) = 0x003f00c4;
+ *((int *)&__m256_op1[7]) = 0x00000101;
+ *((int *)&__m256_op1[6]) = 0x01010101;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000101;
+ *((int *)&__m256_op1[2]) = 0x01010101;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x01fe000000ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x01fe000001fe0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0101010101010102;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0101010201010204;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0101010101010102;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0101010101010102;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000e00ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfff90000fff9fff9;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfff90000fff9fff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010127272525;
+ *((unsigned long *)&__m256d_op1[2]) = 0x23a2a121179e951d;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010127272525;
+ *((unsigned long *)&__m256d_op1[0]) = 0x23a2a121179e951d;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256d_op1[3]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xdff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000040002;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000000000007f;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xc600000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xc600000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff56ff55ff01ff01;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff56ff55ff01ff01;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000800000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffff10;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffff10;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c
new file mode 100644
index 0000000..8dd58f2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c
@@ -0,0 +1,340 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x01fe007a;
+ *((int *)&__m256_op1[6]) = 0x01c40110;
+ *((int *)&__m256_op1[5]) = 0x019d00a2;
+ *((int *)&__m256_op1[4]) = 0x0039fff9;
+ *((int *)&__m256_op1[3]) = 0x01fe007a;
+ *((int *)&__m256_op1[2]) = 0x01c40110;
+ *((int *)&__m256_op1[1]) = 0x019d00a2;
+ *((int *)&__m256_op1[0]) = 0x003a0000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfff10000;
+ *((int *)&__m256_op0[4]) = 0xfff10000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfff10000;
+ *((int *)&__m256_op0[0]) = 0xfff10000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xfff10000;
+ *((int *)&__m256_op1[4]) = 0xfff10000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((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_xvfcmp_cor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffff00ffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffff00ffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_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_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256d_op1[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256d_op1[0]) = 0x01fe01ae00ff00ff;
+ *((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_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000020006;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000020006;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000020006;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x7);
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffff0100000001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffff0100000001;
+ *((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_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000050007;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000039;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c
new file mode 100644
index 0000000..3230c10
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c
@@ -0,0 +1,361 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x01ffffff;
+ *((int *)&__m256_op1[4]) = 0xfe000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x01ffffff;
+ *((int *)&__m256_op1[0]) = 0xfe000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000504f;
+ *((int *)&__m256_op0[6]) = 0xffff3271;
+ *((int *)&__m256_op0[5]) = 0xffff47b4;
+ *((int *)&__m256_op0[4]) = 0xffff5879;
+ *((int *)&__m256_op0[3]) = 0x0000504f;
+ *((int *)&__m256_op0[2]) = 0xffff3271;
+ *((int *)&__m256_op0[1]) = 0xffff47b4;
+ *((int *)&__m256_op0[0]) = 0xffff5879;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xde00fe00;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0000fe01;
+ *((int *)&__m256_op0[4]) = 0x0000fe01;
+ *((int *)&__m256_op0[3]) = 0xde00fe00;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0000fe01;
+ *((int *)&__m256_op0[0]) = 0x0000fe01;
+ *((int *)&__m256_op1[7]) = 0x0000ffff;
+ *((int *)&__m256_op1[6]) = 0x0000ffff;
+ *((int *)&__m256_op1[5]) = 0x00ff00fe;
+ *((int *)&__m256_op1[4]) = 0x00ff00fe;
+ *((int *)&__m256_op1[3]) = 0x0000ffff;
+ *((int *)&__m256_op1[2]) = 0x0000ffff;
+ *((int *)&__m256_op1[1]) = 0x00ff00fe;
+ *((int *)&__m256_op1[0]) = 0x00ff00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[6]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[5]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[4]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[3]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[2]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[1]) = 0xf3f3f3f3;
+ *((int *)&__m256_op0[0]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[7]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[6]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[5]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[4]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[3]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[2]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[1]) = 0xf3f3f3f3;
+ *((int *)&__m256_op1[0]) = 0xf3f3f3f3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x0007a861;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x0007a861;
+ *((int *)&__m256_op1[7]) = 0x80008000;
+ *((int *)&__m256_op1[6]) = 0x80008000;
+ *((int *)&__m256_op1[5]) = 0x80008000;
+ *((int *)&__m256_op1[4]) = 0xfff98000;
+ *((int *)&__m256_op1[3]) = 0x80008000;
+ *((int *)&__m256_op1[2]) = 0x80008000;
+ *((int *)&__m256_op1[1]) = 0x80008000;
+ *((int *)&__m256_op1[0]) = 0xfff98000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000015d050192cb;
+ *((unsigned long *)&__m256d_op0[2]) = 0x028e509508b16ee9;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000033ff01020e23;
+ *((unsigned long *)&__m256d_op0[0]) = 0x151196b58fd1114d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256d_op1[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256d_op1[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0658f2dc0eb21e3c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101010101010203;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_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]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00fe01f000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_cun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c
new file mode 100644
index 0000000..23cbc4b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c
@@ -0,0 +1,424 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x0eb7aaaa;
+ *((int *)&__m256_op1[6]) = 0xa6e6ac80;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x0eb7aaaa;
+ *((int *)&__m256_op1[2]) = 0xa6e6ac80;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x3fff3fff;
+ *((int *)&__m256_op0[6]) = 0x3fff3fff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x3fff3fff;
+ *((int *)&__m256_op0[3]) = 0x3fff3fff;
+ *((int *)&__m256_op0[2]) = 0x3fff3fff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x3fff3fff;
+ *((int *)&__m256_op1[7]) = 0x017e01fe;
+ *((int *)&__m256_op1[6]) = 0x01fe01fe;
+ *((int *)&__m256_op1[5]) = 0x05860606;
+ *((int *)&__m256_op1[4]) = 0x01fe0202;
+ *((int *)&__m256_op1[3]) = 0x017e01fe;
+ *((int *)&__m256_op1[2]) = 0x01fe0000;
+ *((int *)&__m256_op1[1]) = 0x05860606;
+ *((int *)&__m256_op1[0]) = 0x01fe0004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000003f;
+ *((int *)&__m256_op0[6]) = 0x00390035;
+ *((int *)&__m256_op0[5]) = 0x8015003f;
+ *((int *)&__m256_op0[4]) = 0x0006001f;
+ *((int *)&__m256_op0[3]) = 0x0000003f;
+ *((int *)&__m256_op0[2]) = 0x00390035;
+ *((int *)&__m256_op0[1]) = 0x8015003f;
+ *((int *)&__m256_op0[0]) = 0x0006001f;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xefdfefdf;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xefdfefdf;
+ *((int *)&__m256_op1[4]) = 0xefdfefdf;
+ *((int *)&__m256_op1[3]) = 0xefdfefdf;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xefdfefdf;
+ *((int *)&__m256_op1[0]) = 0xefdfefdf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00ff00ff;
+ *((int *)&__m256_op1[6]) = 0x00ff00ff;
+ *((int *)&__m256_op1[5]) = 0x00ff00ff;
+ *((int *)&__m256_op1[4]) = 0x00ff00ff;
+ *((int *)&__m256_op1[3]) = 0x00ff00ff;
+ *((int *)&__m256_op1[2]) = 0x00ff00ff;
+ *((int *)&__m256_op1[1]) = 0x00ff00ff;
+ *((int *)&__m256_op1[0]) = 0x00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x7bfffff0;
+ *((int *)&__m256_op0[5]) = 0x00000001;
+ *((int *)&__m256_op0[4]) = 0x80007fe8;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x7bfffff0;
+ *((int *)&__m256_op0[1]) = 0x00000001;
+ *((int *)&__m256_op0[0]) = 0x80007fe8;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x02020102;
+ *((int *)&__m256_op0[6]) = 0x02020102;
+ *((int *)&__m256_op0[5]) = 0x02020102;
+ *((int *)&__m256_op0[4]) = 0x02020102;
+ *((int *)&__m256_op0[3]) = 0x02020102;
+ *((int *)&__m256_op0[2]) = 0x02020102;
+ *((int *)&__m256_op0[1]) = 0x02020102;
+ *((int *)&__m256_op0[0]) = 0x02020102;
+ *((int *)&__m256_op1[7]) = 0x3e800000;
+ *((int *)&__m256_op1[6]) = 0x3e800000;
+ *((int *)&__m256_op1[5]) = 0x3e800000;
+ *((int *)&__m256_op1[4]) = 0x3e800000;
+ *((int *)&__m256_op1[3]) = 0x3e800000;
+ *((int *)&__m256_op1[2]) = 0x3e800000;
+ *((int *)&__m256_op1[1]) = 0x3e800000;
+ *((int *)&__m256_op1[0]) = 0x3e800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x00ff00ff;
+ *((int *)&__m256_op0[3]) = 0x00ff00ff;
+ *((int *)&__m256_op0[2]) = 0x00ff00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x00ff00ff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xff88ff88;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xff88ff88;
+ *((int *)&__m256_op1[7]) = 0xfe01fe01;
+ *((int *)&__m256_op1[6]) = 0x0000fd02;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x3fc03fc0;
+ *((int *)&__m256_op1[3]) = 0xfe01fe01;
+ *((int *)&__m256_op1[2]) = 0x0000fd02;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x3fc03fc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0xffffb2f6;
+ *((int *)&__m256_op0[4]) = 0x00006f48;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0xffffb2f6;
+ *((int *)&__m256_op0[0]) = 0x00006f48;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x000000ff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00100010;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00100010;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00100010;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000020;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0020000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0020000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000200000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x3fffbfff80000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00004000007f8000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x3fffbfff80000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00004000007f8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_saf_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c
new file mode 100644
index 0000000..6641d2c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c
@@ -0,0 +1,924 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x59800000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x59800000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x41d66000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x41d66000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xa41aa42e;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xa41aa42e;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x83f95466;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x01010101;
+ *((int *)&__m256_op0[0]) = 0x00005400;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xfefefeff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xff295329;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xfefefeff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xff295329;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x111ebb78;
+ *((int *)&__m256_op1[6]) = 0x4f9c4100;
+ *((int *)&__m256_op1[5]) = 0x1c386546;
+ *((int *)&__m256_op1[4]) = 0x809f3b50;
+ *((int *)&__m256_op1[3]) = 0x111ebb78;
+ *((int *)&__m256_op1[2]) = 0x4f9bf1ac;
+ *((int *)&__m256_op1[1]) = 0x21f6050d;
+ *((int *)&__m256_op1[0]) = 0x955d3f68;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffff0000;
+ *((int *)&__m256_op1[4]) = 0xffff0001;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffff0000;
+ *((int *)&__m256_op1[0]) = 0xffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000100;
+ *((int *)&__m256_op0[5]) = 0x00000002;
+ *((int *)&__m256_op0[4]) = 0xff910072;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000100;
+ *((int *)&__m256_op0[1]) = 0x00000002;
+ *((int *)&__m256_op0[0]) = 0xff910072;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffff97a2;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffff97a2;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_seq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x55555555;
+ *((int *)&__m256_op0[6]) = 0x3f800000;
+ *((int *)&__m256_op0[5]) = 0x55555555;
+ *((int *)&__m256_op0[4]) = 0x80000000;
+ *((int *)&__m256_op0[3]) = 0x55555555;
+ *((int *)&__m256_op0[2]) = 0x3f800000;
+ *((int *)&__m256_op0[1]) = 0x55555555;
+ *((int *)&__m256_op0[0]) = 0x80000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0001fffe;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x0001fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00018002;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000002;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00018002;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000002;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00030000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00030000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xfff70156;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xfff70156;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xfff70156;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xfff70156;
+ *((int *)&__m256_op1[7]) = 0x7fefffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x7fefffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x7fefffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x7fefffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ff70;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ff70;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000100;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000100;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000002;
+ *((int *)&__m256_op1[4]) = 0x00000008;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000002;
+ *((int *)&__m256_op1[0]) = 0x00000008;
+ *((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_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x4393a0a5;
+ *((int *)&__m256_op0[6]) = 0xbc606060;
+ *((int *)&__m256_op0[5]) = 0x43b32fee;
+ *((int *)&__m256_op0[4]) = 0xa9000000;
+ *((int *)&__m256_op0[3]) = 0x4393a0a5;
+ *((int *)&__m256_op0[2]) = 0xbc606060;
+ *((int *)&__m256_op0[1]) = 0x43b32fee;
+ *((int *)&__m256_op0[0]) = 0xa9000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000001;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000003;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000003;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000003;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000003;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffeb664;
+ *((int *)&__m256_op0[6]) = 0x007ffd61;
+ *((int *)&__m256_op0[5]) = 0xfffe97a1;
+ *((int *)&__m256_op0[4]) = 0xdf5b41b0;
+ *((int *)&__m256_op0[3]) = 0xfffeb664;
+ *((int *)&__m256_op0[2]) = 0x007ffd61;
+ *((int *)&__m256_op0[1]) = 0xfffe97a1;
+ *((int *)&__m256_op0[0]) = 0xdf5b41b0;
+ *((int *)&__m256_op1[7]) = 0xfffeb683;
+ *((int *)&__m256_op1[6]) = 0x9ffffd80;
+ *((int *)&__m256_op1[5]) = 0xfffe97c0;
+ *((int *)&__m256_op1[4]) = 0x20010001;
+ *((int *)&__m256_op1[3]) = 0xfffeb683;
+ *((int *)&__m256_op1[2]) = 0x9ffffd80;
+ *((int *)&__m256_op1[1]) = 0xfffe97c0;
+ *((int *)&__m256_op1[0]) = 0x20010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sueq_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x053531f7c6334908;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8e41dcbff87e7900;
+ *((unsigned long *)&__m256d_op0[1]) = 0x12eb8332e3e15093;
+ *((unsigned long *)&__m256d_op0[0]) = 0x9a7491f9e016ccd4;
+ *((unsigned long *)&__m256d_op1[3]) = 0x345947dcd192b5c4;
+ *((unsigned long *)&__m256d_op1[2]) = 0x182100c72280e687;
+ *((unsigned long *)&__m256d_op1[1]) = 0x4a1c80bb8e892e00;
+ *((unsigned long *)&__m256d_op1[0]) = 0x063ecfbd58abc4b7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffff0002fffeffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffff0002fffeffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000010486048c;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000100000006;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000010486048c;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00ff00ff00ef0120;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00ff00ff00ef0120;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff00ffff00000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff00ffff00000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x04e8296f08181818;
+ *((unsigned long *)&__m256d_op1[2]) = 0x032feea900000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x04e8296f08181818;
+ *((unsigned long *)&__m256d_op1[0]) = 0x032feea900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x1400080008000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1400080008000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x1400080008000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1400080008000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_seq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256d_op1[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256d_op1[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256d_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_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffe045fffffeff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffff7d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sueq_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c
new file mode 100644
index 0000000..d25fc25
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c
@@ -0,0 +1,627 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffff90;
+ *((int *)&__m256_op0[4]) = 0xffffff80;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffff90;
+ *((int *)&__m256_op0[0]) = 0xffffff80;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((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_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfefee0e3;
+ *((int *)&__m256_op0[6]) = 0xfefefe00;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xfefee0e3;
+ *((int *)&__m256_op0[2]) = 0xfefefe00;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000ffff;
+ *((int *)&__m256_op0[6]) = 0x0000ffff;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x0000ffff;
+ *((int *)&__m256_op0[2]) = 0x0000ffff;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x8000000a;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x8000000a;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x01010101;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x01010101;
+ *((int *)&__m256_op0[4]) = 0x01010101;
+ *((int *)&__m256_op0[3]) = 0x01010101;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x01010101;
+ *((int *)&__m256_op0[0]) = 0x01010101;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffd8ffc7;
+ *((int *)&__m256_op0[4]) = 0xffdaff8a;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffd8ffc7;
+ *((int *)&__m256_op0[0]) = 0xffdaff8a;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0xffffb3b4;
+ *((int *)&__m256_op1[5]) = 0xfffffff5;
+ *((int *)&__m256_op1[4]) = 0xffff4738;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0xffffb3b4;
+ *((int *)&__m256_op1[1]) = 0xfffffff5;
+ *((int *)&__m256_op1[0]) = 0xffff4738;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xf7f7f7f7;
+ *((int *)&__m256_op1[6]) = 0xf7f7f7f8;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xf7f7f7f7;
+ *((int *)&__m256_op1[2]) = 0xf7f7f7f8;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x5fa00000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x5fa00000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op0[2]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op0[1]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op0[0]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op1[3]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op1[2]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op1[1]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256d_op1[0]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000105fffffefb;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffff02000000fe;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000105fffffefb;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffff02000000fe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000020afefb1;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7f350104f7ebffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000003fffc1;
+ *((unsigned long *)&__m256d_op0[0]) = 0x005c0003fff9ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000010100000101;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000001;
+ *((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_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffe0ffe000000000;
+ *((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_xvfcmp_sle_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8d8d72728d8d8d8d;
+ *((unsigned long *)&__m256d_op0[1]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8d8d72728d8d8d8d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sule_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c
new file mode 100644
index 0000000..8210f74
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c
@@ -0,0 +1,1212 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000101;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xc08f7800;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xfffffefd;
+ *((int *)&__m256_op0[3]) = 0xc08f7800;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000101;
+ *((int *)&__m256_op1[4]) = 0x00000102;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000101;
+ *((int *)&__m256_op1[0]) = 0x00000102;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x001f1f3e;
+ *((int *)&__m256_op1[6]) = 0x3e1f1f00;
+ *((int *)&__m256_op1[5]) = 0x00030609;
+ *((int *)&__m256_op1[4]) = 0x09060300;
+ *((int *)&__m256_op1[3]) = 0x001f1f3e;
+ *((int *)&__m256_op1[2]) = 0x3e1f1f00;
+ *((int *)&__m256_op1[1]) = 0x00030609;
+ *((int *)&__m256_op1[0]) = 0x09060300;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7fffffff;
+ *((int *)&__m256_op0[6]) = 0x7fffffff;
+ *((int *)&__m256_op0[5]) = 0x7fffffff;
+ *((int *)&__m256_op0[4]) = 0x7fffffff;
+ *((int *)&__m256_op0[3]) = 0x7fffffff;
+ *((int *)&__m256_op0[2]) = 0x7fffffff;
+ *((int *)&__m256_op0[1]) = 0x7fffffff;
+ *((int *)&__m256_op0[0]) = 0x7fffffff;
+ *((int *)&__m256_op1[7]) = 0x20fc0000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x20fc0000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffff0400;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffff0400;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x08050501;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x08050501;
+ *((int *)&__m256_op1[7]) = 0x90909090;
+ *((int *)&__m256_op1[6]) = 0x90909090;
+ *((int *)&__m256_op1[5]) = 0x90909090;
+ *((int *)&__m256_op1[4]) = 0x90909090;
+ *((int *)&__m256_op1[3]) = 0x90909090;
+ *((int *)&__m256_op1[2]) = 0x90909090;
+ *((int *)&__m256_op1[1]) = 0x90909090;
+ *((int *)&__m256_op1[0]) = 0x90909090;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00001ff8;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xd8d8c000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00001ff8;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xd8d8c000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x02020102;
+ *((int *)&__m256_op1[6]) = 0x02020102;
+ *((int *)&__m256_op1[5]) = 0x02020102;
+ *((int *)&__m256_op1[4]) = 0x02020102;
+ *((int *)&__m256_op1[3]) = 0x02020102;
+ *((int *)&__m256_op1[2]) = 0x02020102;
+ *((int *)&__m256_op1[1]) = 0x02020102;
+ *((int *)&__m256_op1[0]) = 0x02020102;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x00ff00ff;
+ *((int *)&__m256_op0[3]) = 0x00ff00ff;
+ *((int *)&__m256_op0[2]) = 0x00ff00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x00ff00ff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000001;
+ *((int *)&__m256_op1[6]) = 0xffe00000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000001;
+ *((int *)&__m256_op1[2]) = 0xffe00000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x60000108;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x01060005;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x7fef0001;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xfffffff8;
+ *((int *)&__m256_op1[4]) = 0xfffffff8;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xfffffff8;
+ *((int *)&__m256_op1[0]) = 0xfc000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x327f0101;
+ *((int *)&__m256_op0[6]) = 0x01010102;
+ *((int *)&__m256_op0[5]) = 0x63000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x327f0101;
+ *((int *)&__m256_op0[2]) = 0x01010102;
+ *((int *)&__m256_op0[1]) = 0x63000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xce7fffff;
+ *((int *)&__m256_op1[6]) = 0xfffffffe;
+ *((int *)&__m256_op1[5]) = 0x63000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xce7fffff;
+ *((int *)&__m256_op1[2]) = 0xfffffffe;
+ *((int *)&__m256_op1[1]) = 0x63000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x59800000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x59800000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0eb7aaaa;
+ *((int *)&__m256_op1[6]) = 0xa6e6ac80;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x0eb7aaaa;
+ *((int *)&__m256_op1[2]) = 0xa6e6ac80;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000007;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xdbc80000;
+ *((int *)&__m256_op1[6]) = 0x00003fff;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xdbc80000;
+ *((int *)&__m256_op1[2]) = 0x00003fff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000002;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000007f;
+ *((int *)&__m256_op1[7]) = 0xfffffff3;
+ *((int *)&__m256_op1[6]) = 0x0000000b;
+ *((int *)&__m256_op1[5]) = 0xfffffff3;
+ *((int *)&__m256_op1[4]) = 0xfffffff3;
+ *((int *)&__m256_op1[3]) = 0xfffffff3;
+ *((int *)&__m256_op1[2]) = 0x0000000b;
+ *((int *)&__m256_op1[1]) = 0xfffffff3;
+ *((int *)&__m256_op1[0]) = 0xfffffff3;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x223d76f0;
+ *((int *)&__m256_op0[6]) = 0x9f3881ff;
+ *((int *)&__m256_op0[5]) = 0x3870ca8d;
+ *((int *)&__m256_op0[4]) = 0x013e76a0;
+ *((int *)&__m256_op0[3]) = 0x223d76f0;
+ *((int *)&__m256_op0[2]) = 0x9f37e357;
+ *((int *)&__m256_op0[1]) = 0x43ec0a1b;
+ *((int *)&__m256_op0[0]) = 0x2aba7ed0;
+ *((int *)&__m256_op1[7]) = 0x111ebb78;
+ *((int *)&__m256_op1[6]) = 0x4f9c4100;
+ *((int *)&__m256_op1[5]) = 0x1c386546;
+ *((int *)&__m256_op1[4]) = 0x809f3b50;
+ *((int *)&__m256_op1[3]) = 0x111ebb78;
+ *((int *)&__m256_op1[2]) = 0x4f9bf1ac;
+ *((int *)&__m256_op1[1]) = 0x21f6050d;
+ *((int *)&__m256_op1[0]) = 0x955d3f68;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x01010101;
+ *((int *)&__m256_op0[6]) = 0x27272525;
+ *((int *)&__m256_op0[5]) = 0x23a2a121;
+ *((int *)&__m256_op0[4]) = 0x179e951d;
+ *((int *)&__m256_op0[3]) = 0x01010101;
+ *((int *)&__m256_op0[2]) = 0x27272525;
+ *((int *)&__m256_op0[1]) = 0x23a2a121;
+ *((int *)&__m256_op0[0]) = 0x179e951d;
+ *((int *)&__m256_op1[7]) = 0x00001251;
+ *((int *)&__m256_op1[6]) = 0x00005111;
+ *((int *)&__m256_op1[5]) = 0x00000c4f;
+ *((int *)&__m256_op1[4]) = 0x00004b0f;
+ *((int *)&__m256_op1[3]) = 0x00001251;
+ *((int *)&__m256_op1[2]) = 0x00005111;
+ *((int *)&__m256_op1[1]) = 0x00000c4f;
+ *((int *)&__m256_op1[0]) = 0x00004b0f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x80000000;
+ *((int *)&__m256_op1[6]) = 0xff800000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0x80000000;
+ *((int *)&__m256_op1[3]) = 0x80000000;
+ *((int *)&__m256_op1[2]) = 0xff800000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_op1[7]) = 0x7ff00000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x7ff00000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x7ff00000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x7ff00000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x000000ff;
+ *((int *)&__m256_op1[6]) = 0x000000ff;
+ *((int *)&__m256_op1[5]) = 0x000000ff;
+ *((int *)&__m256_op1[4]) = 0x000000ff;
+ *((int *)&__m256_op1[3]) = 0x000000ff;
+ *((int *)&__m256_op1[2]) = 0x000000ff;
+ *((int *)&__m256_op1[1]) = 0x000000ff;
+ *((int *)&__m256_op1[0]) = 0x000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfe01fe01;
+ *((int *)&__m256_op0[6]) = 0x7e81fd02;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x3fc001fe;
+ *((int *)&__m256_op0[3]) = 0xfe01fe01;
+ *((int *)&__m256_op0[2]) = 0x7e81fd02;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x3fc001fe;
+ *((int *)&__m256_op1[7]) = 0xfe01fe01;
+ *((int *)&__m256_op1[6]) = 0x7e81fd02;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x3fc001fe;
+ *((int *)&__m256_op1[3]) = 0xfe01fe01;
+ *((int *)&__m256_op1[2]) = 0x7e81fd02;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x3fc001fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x80000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x80000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0ff80100ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0ff80100ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000017000000080;
+ *((unsigned long *)&__m256d_op1[2]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000017000000080;
+ *((unsigned long *)&__m256d_op1[0]) = 0xc06500550055ffab;
+ *((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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x01480000052801a2;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffdcff64;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101010101010203;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff000100000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000001900000019;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000001900000019;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000001900000019;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000001900000019;
+ *((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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00aa00ab00ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00aa00ab00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffe37fe3001d001d;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffe37fe3001d001d;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000104000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000104000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfe01fe017e81fd02;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000003fc001fe;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfe01fe017e81fd02;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000003fc001fe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_slt_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x001175f10e4330e8;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff8f0842ff29211e;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffff8d9ffa7103d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x001175f10e4330e8;
+ *((unsigned long *)&__m256d_op1[2]) = 0xff8f0842ff29211e;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8020004a0011002a;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000b004a00440040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8020004a0011002a;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0fff0fff00000020;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0fff0fff00000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256d_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffefffefffeffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffefffefffeffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000860601934;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000860601934;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256d_op1[2]) = 0x4079808280057efe;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x007ffcfcfd020202;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000400000004;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sult_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c
new file mode 100644
index 0000000..9d015a5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c
@@ -0,0 +1,756 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x80808080;
+ *((int *)&__m256_op0[6]) = 0x80808080;
+ *((int *)&__m256_op0[5]) = 0x80808080;
+ *((int *)&__m256_op0[4]) = 0x80808080;
+ *((int *)&__m256_op0[3]) = 0x80808080;
+ *((int *)&__m256_op0[2]) = 0x80808080;
+ *((int *)&__m256_op0[1]) = 0x80808080;
+ *((int *)&__m256_op0[0]) = 0x80808080;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xefefefef;
+ *((int *)&__m256_op0[6]) = 0xefefefef;
+ *((int *)&__m256_op0[5]) = 0xefefefef;
+ *((int *)&__m256_op0[4]) = 0xefefefef;
+ *((int *)&__m256_op0[3]) = 0xefefefef;
+ *((int *)&__m256_op0[2]) = 0xefefef6e;
+ *((int *)&__m256_op0[1]) = 0xeeeeeeee;
+ *((int *)&__m256_op0[0]) = 0xeeeeeeee;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7f800000;
+ *((int *)&__m256_op0[6]) = 0x7f800000;
+ *((int *)&__m256_op0[5]) = 0x7f800000;
+ *((int *)&__m256_op0[4]) = 0x7f800000;
+ *((int *)&__m256_op0[3]) = 0x7f800000;
+ *((int *)&__m256_op0[2]) = 0x7f800000;
+ *((int *)&__m256_op0[1]) = 0x7f800000;
+ *((int *)&__m256_op0[0]) = 0x7f800000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0x00ff00ff;
+ *((int *)&__m256_op1[6]) = 0x00ff00ff;
+ *((int *)&__m256_op1[5]) = 0x00ff00ff;
+ *((int *)&__m256_op1[4]) = 0x00ff00ff;
+ *((int *)&__m256_op1[3]) = 0x00ff00ff;
+ *((int *)&__m256_op1[2]) = 0x00ff00ff;
+ *((int *)&__m256_op1[1]) = 0x00ff00ff;
+ *((int *)&__m256_op1[0]) = 0x00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0x80000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x40404040;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x40404040;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xfefefefe;
+ *((int *)&__m256_op1[4]) = 0x3f800000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xfefefefe;
+ *((int *)&__m256_op1[0]) = 0x3f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffff0101;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff0101;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x55555501;
+ *((int *)&__m256_op0[4]) = 0xfefefeab;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x55555501;
+ *((int *)&__m256_op0[0]) = 0xfefefeab;
+ *((int *)&__m256_op1[7]) = 0x0010bfc8;
+ *((int *)&__m256_op1[6]) = 0x0010bf52;
+ *((int *)&__m256_op1[5]) = 0xfff1bfca;
+ *((int *)&__m256_op1[4]) = 0x0011bfcb;
+ *((int *)&__m256_op1[3]) = 0x0010bfc8;
+ *((int *)&__m256_op1[2]) = 0x0010bf52;
+ *((int *)&__m256_op1[1]) = 0xfff1bfca;
+ *((int *)&__m256_op1[0]) = 0x0011bfcb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x80008000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x80008000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x80008000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x80008000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00060000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00060000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000166;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000166;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000004a;
+ *((int *)&__m256_op0[6]) = 0x557baac4;
+ *((int *)&__m256_op0[5]) = 0x556caad9;
+ *((int *)&__m256_op0[4]) = 0xaabbaa88;
+ *((int *)&__m256_op0[3]) = 0x0000004a;
+ *((int *)&__m256_op0[2]) = 0x557baac4;
+ *((int *)&__m256_op0[1]) = 0x556caad9;
+ *((int *)&__m256_op0[0]) = 0xaabbaa88;
+ *((int *)&__m256_op1[7]) = 0x09090909;
+ *((int *)&__m256_op1[6]) = 0x09090909;
+ *((int *)&__m256_op1[5]) = 0x09090909;
+ *((int *)&__m256_op1[4]) = 0x09090909;
+ *((int *)&__m256_op1[3]) = 0x09090909;
+ *((int *)&__m256_op1[2]) = 0x09090909;
+ *((int *)&__m256_op1[1]) = 0x09090909;
+ *((int *)&__m256_op1[0]) = 0x09090909;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x80000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x80000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x80000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x80000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000020;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000020;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sune_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xbabababababababa;
+ *((unsigned long *)&__m256d_op0[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256d_op0[1]) = 0xbabababababababa;
+ *((unsigned long *)&__m256d_op0[0]) = 0xbabababababababa;
+ *((unsigned long *)&__m256d_op1[3]) = 0x88888a6d0962002e;
+ *((unsigned long *)&__m256d_op1[2]) = 0xdb8a3109fe0f0020;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000007fff01fffb;
+ *((unsigned long *)&__m256d_op1[0]) = 0xdb8e20990cce025a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256d_op1[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256d_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sne_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffffffffffebeb8;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffffffffffebeb8;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfafafafafafafafa;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000fefefe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101010101010203;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffa80000ff31;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sune_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c
new file mode 100644
index 0000000..a616810
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c
@@ -0,0 +1,438 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x80000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x000000ff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x000000ff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000064;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000781;
+ *((int *)&__m256_op0[0]) = 0x00000064;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0c6a2400;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0f002040;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x0c6a2400;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0f002040;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x0000000c;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x0000000c;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0feff00000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0feff00000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x3ff1808001020101;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[0]) = 0x3ff1808001020101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000005;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfefefefeffe0e0e0;
+ *((unsigned long *)&__m256d_op0[1]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfefefefeffe0e0e0;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000040004000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_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_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sor_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c
new file mode 100644
index 0000000..41f2749
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c
@@ -0,0 +1,363 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x1e180000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x1e180000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x1e180000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x1e180000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00802000;
+ *((int *)&__m256_op1[6]) = 0x00802000;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00802000;
+ *((int *)&__m256_op1[2]) = 0x00802000;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000055;
+ *((int *)&__m256_op0[6]) = 0x36aaaaac;
+ *((int *)&__m256_op0[5]) = 0x55555555;
+ *((int *)&__m256_op0[4]) = 0xaaaaaaac;
+ *((int *)&__m256_op0[3]) = 0x00000055;
+ *((int *)&__m256_op0[2]) = 0x36aaaaac;
+ *((int *)&__m256_op0[1]) = 0x55555555;
+ *((int *)&__m256_op0[0]) = 0xaaaaaaac;
+ *((int *)&__m256_op1[7]) = 0x00060000;
+ *((int *)&__m256_op1[6]) = 0x00040000;
+ *((int *)&__m256_op1[5]) = 0x00025555;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00060000;
+ *((int *)&__m256_op1[2]) = 0x00040000;
+ *((int *)&__m256_op1[1]) = 0x00025555;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xff240000;
+ *((int *)&__m256_op0[6]) = 0x0000ff00;
+ *((int *)&__m256_op0[5]) = 0xfffeffe4;
+ *((int *)&__m256_op0[4]) = 0xfffeff00;
+ *((int *)&__m256_op0[3]) = 0xff640000;
+ *((int *)&__m256_op0[2]) = 0x0000ff00;
+ *((int *)&__m256_op0[1]) = 0xfffeff66;
+ *((int *)&__m256_op0[0]) = 0xfffeff00;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x80808082;
+ *((int *)&__m256_op0[6]) = 0x80808082;
+ *((int *)&__m256_op0[5]) = 0x80808082;
+ *((int *)&__m256_op0[4]) = 0x80808082;
+ *((int *)&__m256_op0[3]) = 0x80808082;
+ *((int *)&__m256_op0[2]) = 0x80808080;
+ *((int *)&__m256_op0[1]) = 0x80808082;
+ *((int *)&__m256_op0[0]) = 0x80808082;
+ *((int *)&__m256_op1[7]) = 0x55555555;
+ *((int *)&__m256_op1[6]) = 0x55555555;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x55555555;
+ *((int *)&__m256_op1[2]) = 0x55555555;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[6]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[5]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[4]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[3]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[2]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[1]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[0]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[7]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[6]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[5]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[4]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[3]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[2]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[1]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[0]) = 0x6d6d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000118;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000118;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000027;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfcmp_sun_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c
new file mode 100644
index 0000000..116399a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c
@@ -0,0 +1,528 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000003;
+ *((int *)&__m256_op1[6]) = 0x0000000c;
+ *((int *)&__m256_op1[5]) = 0x00000011;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000005;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000008;
+ *((int *)&__m256_op1[0]) = 0x00000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[6]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[5]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[4]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[3]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[2]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[1]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[0]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[7]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[6]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[5]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[4]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[3]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[2]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[1]) = 0x6d6d6d6d;
+ *((int *)&__m256_op1[0]) = 0x6d6d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[2]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[1]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[0]) = 0x7c007c007c007c00;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((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_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00020000;
+ *((int *)&__m256_op1[6]) = 0x00020000;
+ *((int *)&__m256_op1[5]) = 0x00020000;
+ *((int *)&__m256_op1[4]) = 0x00010000;
+ *((int *)&__m256_op1[3]) = 0x00020000;
+ *((int *)&__m256_op1[2]) = 0x00020000;
+ *((int *)&__m256_op1[1]) = 0x00020000;
+ *((int *)&__m256_op1[0]) = 0x00010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x71717171;
+ *((int *)&__m256_op1[6]) = 0x71010101;
+ *((int *)&__m256_op1[5]) = 0x8e8e8e8e;
+ *((int *)&__m256_op1[4]) = 0x8f00ffff;
+ *((int *)&__m256_op1[3]) = 0x71717171;
+ *((int *)&__m256_op1[2]) = 0x71010101;
+ *((int *)&__m256_op1[1]) = 0x8e8e8e8e;
+ *((int *)&__m256_op1[0]) = 0x8f00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7c007c0080008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7c007c0080008000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfff10000;
+ *((int *)&__m256_op0[4]) = 0xfff10000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfff10000;
+ *((int *)&__m256_op0[0]) = 0xfff10000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xfff10000;
+ *((int *)&__m256_op1[4]) = 0xfff10000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xfff10000;
+ *((int *)&__m256_op1[0]) = 0xfff10000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff88ff88;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00040000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00040000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xff00ff00;
+ *((int *)&__m256_op0[6]) = 0x3f003f00;
+ *((int *)&__m256_op0[5]) = 0xff0101fd;
+ *((int *)&__m256_op0[4]) = 0x00010100;
+ *((int *)&__m256_op0[3]) = 0xff00ff00;
+ *((int *)&__m256_op0[2]) = 0x3f003f00;
+ *((int *)&__m256_op0[1]) = 0xff0101fd;
+ *((int *)&__m256_op0[0]) = 0x00010100;
+ *((int *)&__m256_op1[7]) = 0x01ffff43;
+ *((int *)&__m256_op1[6]) = 0x00fffeff;
+ *((int *)&__m256_op1[5]) = 0xfe0000bc;
+ *((int *)&__m256_op1[4]) = 0xff000100;
+ *((int *)&__m256_op1[3]) = 0x01ffff43;
+ *((int *)&__m256_op1[2]) = 0x00fffeff;
+ *((int *)&__m256_op1[1]) = 0xfe0000bc;
+ *((int *)&__m256_op1[0]) = 0xff000100;
+ *((unsigned long *)&__m256i_result[3]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fc00fc00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fc00fc00;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfcvt_h_s (__m256_op0, __m256_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0cc08723ff900001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xcc9b89f2f6cef440;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xfffffff8;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xfffffff8;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0xff800000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xff800000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xff800000ff800000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xff800000;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xff800000;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00003f784000ff80;
+ *((unsigned long *)&__m256d_op1[1]) = 0xf7f8f7f84000fff9;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00003f784000ff80;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xff800000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xff800000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000555500005555;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000555500005555;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000555500005555;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000555500005555;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffb6804cb9;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffb7bbdec0;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffb680489b;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffb7bc02a0;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xfffffffd;
+ *((int *)&__m256_result[4]) = 0xfffffffd;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xfffffffd;
+ *((int *)&__m256_result[0]) = 0xfffffffd;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010202020203;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101010201010102;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010202020203;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101010201010102;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x3fff3fff3fff3fc4;
+ *((unsigned long *)&__m256d_op1[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x3fff3fff3fff3fc4;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x3ff9fffa;
+ *((int *)&__m256_result[4]) = 0x3ff9fffa;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x3ff9fffa;
+ *((int *)&__m256_result[0]) = 0x3ff9fffa;
+ __m256_out = __lasx_xvfcvt_s_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c
new file mode 100644
index 0000000..001ce1c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfcvth.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;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x0000aaaa;
+ *((int *)&__m256_op0[6]) = 0x00008bfe;
+ *((int *)&__m256_op0[5]) = 0x0000aaaa;
+ *((int *)&__m256_op0[4]) = 0x0000aaaa;
+ *((int *)&__m256_op0[3]) = 0x0000aaaa;
+ *((int *)&__m256_op0[2]) = 0x00008bfe;
+ *((int *)&__m256_op0[1]) = 0x0000aaaa;
+ *((int *)&__m256_op0[0]) = 0x0000aaaa;
+ *((unsigned long *)&__m256d_result[3]) = 0x3795554000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x37917fc000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x3795554000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x37917fc000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0408010008080808;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0404010008080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0408010008080808;
+ *((int *)&__m256_result[7]) = 0x38808000;
+ *((int *)&__m256_result[6]) = 0x37800000;
+ *((int *)&__m256_result[5]) = 0x39010000;
+ *((int *)&__m256_result[4]) = 0x39010000;
+ *((int *)&__m256_result[3]) = 0x38808000;
+ *((int *)&__m256_result[2]) = 0x37800000;
+ *((int *)&__m256_result[1]) = 0x39010000;
+ *((int *)&__m256_result[0]) = 0x39010000;
+ __m256_out = __lasx_xvfcvth_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvth_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvth_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffe0000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000100010001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000100010001fffe;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfcvth_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvth_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00020006;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00020006;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00020006;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00020006;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x37b0003000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x37b0003000000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffffff0;
+ *((int *)&__m256_op0[6]) = 0xfffffff0;
+ *((int *)&__m256_op0[5]) = 0xfffffff0;
+ *((int *)&__m256_op0[4]) = 0xfffffff0;
+ *((int *)&__m256_op0[3]) = 0xfffffff0;
+ *((int *)&__m256_op0[2]) = 0xfffffff0;
+ *((int *)&__m256_op0[1]) = 0xfffffff0;
+ *((int *)&__m256_op0[0]) = 0xfffffff0;
+ *((unsigned long *)&__m256d_result[3]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfffffffe00000000;
+ __m256d_out = __lasx_xvfcvth_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffe0000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf000000000000000;
+ *((int *)&__m256_result[7]) = 0xc6000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xc6000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvtl_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc080ffff0049ffd2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffeffb9ff9d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00010000002fff9e;
+ *((int *)&__m256_result[7]) = 0x34000000;
+ *((int *)&__m256_result[6]) = 0xfff00000;
+ *((int *)&__m256_result[5]) = 0xfff6e000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x33800000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x363c0000;
+ *((int *)&__m256_result[0]) = 0xfff3c000;
+ __m256_out = __lasx_xvfcvtl_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvtl_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x80000000;
+ *((int *)&__m256_op0[5]) = 0x80000000;
+ *((int *)&__m256_op0[4]) = 0xff800000;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x80000000;
+ *((int *)&__m256_op0[1]) = 0x80000000;
+ *((int *)&__m256_op0[0]) = 0xff800000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc1d75053f0000000;
+ *((int *)&__m256_result[7]) = 0xc03ae000;
+ *((int *)&__m256_result[6]) = 0x420a6000;
+ *((int *)&__m256_result[5]) = 0xc6000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xc03ae000;
+ *((int *)&__m256_result[2]) = 0x420a6000;
+ *((int *)&__m256_result[1]) = 0xc6000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvtl_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x03802fc000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x03802fc000000000;
+ *((int *)&__m256_result[7]) = 0x38600000;
+ *((int *)&__m256_result[6]) = 0x3df80000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x38600000;
+ *((int *)&__m256_result[2]) = 0x3df80000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfcvtl_s_h (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffe0000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfcvtl_d_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c
new file mode 100644
index 0000000..dd04fd7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c
@@ -0,0 +1,375 @@
+/* { 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 *)&__m256d_result[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xbff0000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001700080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001700080;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x4177000800000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x4177000800000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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 *)&__m256d_result[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xc1f0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xc1f0000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256d_result[3]) = 0x437fe01fe01fe020;
+ *((unsigned long *)&__m256d_result[2]) = 0x437fe01fe01fe020;
+ *((unsigned long *)&__m256d_result[1]) = 0x437fe01fe01fe020;
+ *((unsigned long *)&__m256d_result[0]) = 0x437fe01fe01fe020;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[0]) = 0x132feea900000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x4393a0a5bc606060;
+ *((unsigned long *)&__m256d_result[2]) = 0x43b32feea9000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x4393a0a5bc606060;
+ *((unsigned long *)&__m256d_result[0]) = 0x43b32feea9000000;
+ __m256d_out = __lasx_xvffint_d_l (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0658f2dc0eb21e3c;
+ *((int *)&__m256_result[7]) = 0x4e5cba76;
+ *((int *)&__m256_result[6]) = 0xcdbaaa78;
+ *((int *)&__m256_result[5]) = 0xce68fdeb;
+ *((int *)&__m256_result[4]) = 0x4e33eaff;
+ *((int *)&__m256_result[3]) = 0x4e45cc2d;
+ *((int *)&__m256_result[2]) = 0xcda41b30;
+ *((int *)&__m256_result[1]) = 0x4ccb1e5c;
+ *((int *)&__m256_result[0]) = 0x4d6b21e4;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000008000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x4efffe00;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x47000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x4efffe00;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x47000000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff00;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x477f0000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x477f0000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010001000030000;
+ *((int *)&__m256_result[7]) = 0x49800080;
+ *((int *)&__m256_result[6]) = 0x48400000;
+ *((int *)&__m256_result[5]) = 0x49800080;
+ *((int *)&__m256_result[4]) = 0x48400000;
+ *((int *)&__m256_result[3]) = 0x49800080;
+ *((int *)&__m256_result[2]) = 0x48400000;
+ *((int *)&__m256_result[1]) = 0x49800080;
+ *((int *)&__m256_result[0]) = 0x48400000;
+ __m256_out = __lasx_xvffint_s_w (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x00000000ffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x4f800000;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_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]) = 0xffffc74180000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff884580000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0xbf800000;
+ *((int *)&__m256_result[6]) = 0xbf800000;
+ *((int *)&__m256_result[5]) = 0xd662fa00;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xbf800000;
+ *((int *)&__m256_result[2]) = 0xbf800000;
+ *((int *)&__m256_result[1]) = 0xd6ef7500;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000005000000020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((int *)&__m256_result[7]) = 0xdf000000;
+ *((int *)&__m256_result[6]) = 0x52a00000;
+ *((int *)&__m256_result[5]) = 0x5b7f00ff;
+ *((int *)&__m256_result[4]) = 0x5b7f00ff;
+ *((int *)&__m256_result[3]) = 0xdf000000;
+ *((int *)&__m256_result[2]) = 0x52a00000;
+ *((int *)&__m256_result[1]) = 0x5b7f00ff;
+ *((int *)&__m256_result[0]) = 0x5b7f00ff;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x5d20a0a1;
+ *((int *)&__m256_result[6]) = 0x5d20a0a1;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x5d20a0a1;
+ *((int *)&__m256_result[2]) = 0x5d20a0a1;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_l (__m256i_op0, __m256i_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c
new file mode 100644
index 0000000..3e2b155
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c
@@ -0,0 +1,246 @@
+/* { 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]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x4370100000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x4370100000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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 *)&__m256d_result[3]) = 0x43c0101010101010;
+ *((unsigned long *)&__m256d_result[2]) = 0x43c0101010101032;
+ *((unsigned long *)&__m256d_result[1]) = 0x43c0101010101010;
+ *((unsigned long *)&__m256d_result[0]) = 0x43c0101010101032;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40efffe09fa88260;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6b07ca8e013fbf01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40efffe09fa7e358;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80ce32be3e827f00;
+ *((unsigned long *)&__m256d_result[3]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256d_result[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256d_result[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256d_result[0]) = 0x43e019c657c7d050;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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 *)&__m256d_result[3]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x43f0000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x41f0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x41f0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41f0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x41f0000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256d_result[3]) = 0x4380100810101008;
+ *((unsigned long *)&__m256d_result[2]) = 0x4380100810101008;
+ *((unsigned long *)&__m256d_result[1]) = 0x4380100810101008;
+ *((unsigned long *)&__m256d_result[0]) = 0x4380100810101008;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x41f0000000000000;
+ __m256d_out = __lasx_xvffint_d_lu (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffbf7f00007fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffe651ffffbfff;
+ *((int *)&__m256_result[7]) = 0x4f800000;
+ *((int *)&__m256_result[6]) = 0x4f800000;
+ *((int *)&__m256_result[5]) = 0x4f7fffbf;
+ *((int *)&__m256_result[4]) = 0x46fffe00;
+ *((int *)&__m256_result[3]) = 0x4f800000;
+ *((int *)&__m256_result[2]) = 0x4f800000;
+ *((int *)&__m256_result[1]) = 0x4f7fffe6;
+ *((int *)&__m256_result[0]) = 0x4f7fffc0;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((int *)&__m256_result[7]) = 0x4b808080;
+ *((int *)&__m256_result[6]) = 0x4b808080;
+ *((int *)&__m256_result[5]) = 0x4f800000;
+ *((int *)&__m256_result[4]) = 0x4f7fffff;
+ *((int *)&__m256_result[3]) = 0x4b808080;
+ *((int *)&__m256_result[2]) = 0x4b808080;
+ *((int *)&__m256_result[1]) = 0x4f800000;
+ *((int *)&__m256_result[0]) = 0x4f800000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x41000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x41000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x41000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x41000000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000020;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x42800000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x42000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x42800000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x42000000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvffint_s_wu (__m256i_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffinth.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffinth.c
new file mode 100644
index 0000000..e310ff5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvffinth.c
@@ -0,0 +1,262 @@
+/* { 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]) = 0x0e2d5626ff75cdbc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5db4b156e2002a78;
+ *((unsigned long *)&__m256i_op0[1]) = 0xeeffbeb03ba3e6b0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0c16e25eb28d27ea;
+ *((unsigned long *)&__m256d_result[3]) = 0x41ac5aac4c000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xc161464880000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xc1b1004150000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x41cdd1f358000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000006f0000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000006f0000007f;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256d_result[3]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256d_result[1]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x41d8585858400000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x41dfffc000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41dfffdfffc00000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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 *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffb79fb74;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256d_result[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xc192181230000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xc192181230000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_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 *)&__m256d_result[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xbff0000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ffffffff00;
+ *((unsigned long *)&__m256d_result[3]) = 0x40efffe000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x40efffe000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x41dffc0000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41dffc0000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256d_result[3]) = 0xc039000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xc039000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xc039000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xc039000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffinth_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41d6600000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256d_result[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256d_result[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256d_result[0]) = 0xc1d75053f0000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x403f000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x403f000000000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00f7000000f70006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00f7000000f70006;
+ *((unsigned long *)&__m256d_result[3]) = 0x416ee00000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x416ee000c0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x416ee00000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x416ee000c0000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff000000000080;
+ *((unsigned long *)&__m256d_result[3]) = 0x416fe00000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x4060000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x416fe00000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x4060000000000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x41cfe01dde000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x41cfe01dde000000;
+ __m256d_out = __lasx_xvffintl_d_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c
new file mode 100644
index 0000000..bba1a06
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c
@@ -0,0 +1,86 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xc08f780000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256d_result[1]) = 0xc08f780000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvflogb_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c
new file mode 100644
index 0000000..b641c73
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c
@@ -0,0 +1,115 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvflogb_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x10101010;
+ *((int *)&__m256_op0[6]) = 0x10101012;
+ *((int *)&__m256_op0[5]) = 0x10101010;
+ *((int *)&__m256_op0[4]) = 0x10101012;
+ *((int *)&__m256_op0[3]) = 0x10101010;
+ *((int *)&__m256_op0[2]) = 0x10101093;
+ *((int *)&__m256_op0[1]) = 0x11111111;
+ *((int *)&__m256_op0[0]) = 0x11111113;
+ *((int *)&__m256_result[7]) = 0xc2be0000;
+ *((int *)&__m256_result[6]) = 0xc2be0000;
+ *((int *)&__m256_result[5]) = 0xc2be0000;
+ *((int *)&__m256_result[4]) = 0xc2be0000;
+ *((int *)&__m256_result[3]) = 0xc2be0000;
+ *((int *)&__m256_result[2]) = 0xc2be0000;
+ *((int *)&__m256_result[1]) = 0xc2ba0000;
+ *((int *)&__m256_result[0]) = 0xc2ba0000;
+ __m256_out = __lasx_xvflogb_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xff800000;
+ *((int *)&__m256_result[6]) = 0xff800000;
+ *((int *)&__m256_result[5]) = 0xff800000;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0xff800000;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0xff800000;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvflogb_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xff800000;
+ *((int *)&__m256_result[6]) = 0xff800000;
+ *((int *)&__m256_result[5]) = 0xff800000;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0xff800000;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0xff800000;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvflogb_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000087;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000087;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xff800000;
+ *((int *)&__m256_result[6]) = 0xff800000;
+ *((int *)&__m256_result[5]) = 0xc30e0000;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0xff800000;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0xc30e0000;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvflogb_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c
new file mode 100644
index 0000000..c85c94b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c
@@ -0,0 +1,382 @@
+/* { 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 *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xe37affb42fc05f69;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x65fb66c81da8e5ba;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256d_op2[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256d_op2[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256d_op2[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256d_result[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256d_result[0]) = 0xe3aebaf4df958004;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000f3280000dfff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256d_op1[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x00020001ffb6ffe0;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0049004200000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xbf28b0686066be60;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0xc5c5c5c5c5c5c5c5;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000f1a40;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000aaaa0000aaaa;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0202810102020202;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0202810102020202;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x00007fff00000000;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256d_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x000000000000ffff;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256d_op1[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256d_op1[0]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256d_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000100010001;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffff000000;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256d_op2[2]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256d_op2[1]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256d_op2[0]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256d_op2[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_op2[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_op2[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff5f5c;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000fff0e400;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000007380;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000f1c00;
+ *((unsigned long *)&__m256d_op2[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op2[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256d_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op2[0]) = 0x00000000fff0e400;
+ *((unsigned long *)&__m256d_result[3]) = 0x80000000ffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x80000000ffff8c80;
+ *((unsigned long *)&__m256d_result[1]) = 0x80000000ffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x80000000fff0e400;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x80000000000001dc;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x80000000000001dc;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0404000004040000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0404000004040000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[3]) = 0x8011ffee804c004c;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00faff0500c3ff3c;
+ *((unsigned long *)&__m256d_op1[1]) = 0x80f900f980780078;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0057ffa800ceff31;
+ *((unsigned long *)&__m256d_op2[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256d_op2[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256d_op2[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256d_op2[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256d_result[2]) = 0x80003fc00000428a;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256d_result[0]) = 0x80003fc00000428a;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op2[0]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000100000001;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000100000001;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffb2f600006f48;
+ __m256d_out = __lasx_xvfmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c
new file mode 100644
index 0000000..bde41dd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c
@@ -0,0 +1,720 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xf328dfff;
+ *((int *)&__m256_op1[1]) = 0x6651bfff;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x0000ffff;
+ *((int *)&__m256_op2[6]) = 0x0000ff80;
+ *((int *)&__m256_op2[5]) = 0x00004686;
+ *((int *)&__m256_op2[4]) = 0x00007f79;
+ *((int *)&__m256_op2[3]) = 0x0000ffff;
+ *((int *)&__m256_op2[2]) = 0x0000ffff;
+ *((int *)&__m256_op2[1]) = 0x0000f328;
+ *((int *)&__m256_op2[0]) = 0x0000dfff;
+ *((int *)&__m256_result[7]) = 0x0000ffff;
+ *((int *)&__m256_result[6]) = 0x0000ff80;
+ *((int *)&__m256_result[5]) = 0x00004686;
+ *((int *)&__m256_result[4]) = 0x00007f79;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0x0000ffff;
+ *((int *)&__m256_result[1]) = 0x0000f328;
+ *((int *)&__m256_result[0]) = 0x0000dfff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfff10000;
+ *((int *)&__m256_op0[4]) = 0xfff10000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfff10000;
+ *((int *)&__m256_op0[0]) = 0xfff10000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xfff10000;
+ *((int *)&__m256_result[4]) = 0xfff10000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xfff10000;
+ *((int *)&__m256_result[0]) = 0xfff10000;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x803f6004;
+ *((int *)&__m256_op2[4]) = 0x1f636003;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x803f6004;
+ *((int *)&__m256_op2[0]) = 0x1f636003;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x803f6004;
+ *((int *)&__m256_result[4]) = 0x1f636003;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x803f6004;
+ *((int *)&__m256_result[0]) = 0x1f636003;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffb3430a;
+ *((int *)&__m256_op0[4]) = 0x006ed8b8;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffb3430a;
+ *((int *)&__m256_op0[0]) = 0x006ed8b8;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x000001ff;
+ *((int *)&__m256_op1[4]) = 0x000003fe;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x000001ff;
+ *((int *)&__m256_op1[0]) = 0x000003fe;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x000000ff;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x000000ff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xfff3430a;
+ *((int *)&__m256_result[4]) = 0x000000ff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xfff3430a;
+ *((int *)&__m256_result[0]) = 0x000000ff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffeb683;
+ *((int *)&__m256_op0[6]) = 0x9ffffd80;
+ *((int *)&__m256_op0[5]) = 0xfffe97c0;
+ *((int *)&__m256_op0[4]) = 0x20010001;
+ *((int *)&__m256_op0[3]) = 0xfffeb683;
+ *((int *)&__m256_op0[2]) = 0x9ffffd80;
+ *((int *)&__m256_op0[1]) = 0xfffe97c0;
+ *((int *)&__m256_op0[0]) = 0x20010001;
+ *((int *)&__m256_op1[7]) = 0x00009fff;
+ *((int *)&__m256_op1[6]) = 0x9ffffd80;
+ *((int *)&__m256_op1[5]) = 0x0000ffff;
+ *((int *)&__m256_op1[4]) = 0x20010001;
+ *((int *)&__m256_op1[3]) = 0x00009fff;
+ *((int *)&__m256_op1[2]) = 0x9ffffd80;
+ *((int *)&__m256_op1[1]) = 0x0000ffff;
+ *((int *)&__m256_op1[0]) = 0x20010001;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00002080;
+ *((int *)&__m256_op2[4]) = 0xdf5b41cf;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00002080;
+ *((int *)&__m256_op2[0]) = 0xdf5b41cf;
+ *((int *)&__m256_result[7]) = 0xfffeb683;
+ *((int *)&__m256_result[6]) = 0x007ffd80;
+ *((int *)&__m256_result[5]) = 0xfffe97c0;
+ *((int *)&__m256_result[4]) = 0xdf5b41cf;
+ *((int *)&__m256_result[3]) = 0xfffeb683;
+ *((int *)&__m256_result[2]) = 0x007ffd80;
+ *((int *)&__m256_result[1]) = 0xfffe97c0;
+ *((int *)&__m256_result[0]) = 0xdf5b41cf;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xfffeb664;
+ *((int *)&__m256_op1[6]) = 0x007ffd61;
+ *((int *)&__m256_op1[5]) = 0xfffe97a1;
+ *((int *)&__m256_op1[4]) = 0xdf5b41b0;
+ *((int *)&__m256_op1[3]) = 0xfffeb664;
+ *((int *)&__m256_op1[2]) = 0x007ffd61;
+ *((int *)&__m256_op1[1]) = 0xfffe97a1;
+ *((int *)&__m256_op1[0]) = 0xdf5b41b0;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x94d7fb52;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xfffeb664;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xfffe97a1;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xfffeb664;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xfffe97a1;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xb70036db;
+ *((int *)&__m256_op1[6]) = 0x12c4007e;
+ *((int *)&__m256_op1[5]) = 0xb7146213;
+ *((int *)&__m256_op1[4]) = 0xfc1e0049;
+ *((int *)&__m256_op1[3]) = 0x000000fe;
+ *((int *)&__m256_op1[2]) = 0xfe02fffe;
+ *((int *)&__m256_op1[1]) = 0xb71c413b;
+ *((int *)&__m256_op1[0]) = 0x199d04b5;
+ *((int *)&__m256_op2[7]) = 0xb70036db;
+ *((int *)&__m256_op2[6]) = 0x12c4007e;
+ *((int *)&__m256_op2[5]) = 0xb7146213;
+ *((int *)&__m256_op2[4]) = 0xfc1e0049;
+ *((int *)&__m256_op2[3]) = 0x000000fe;
+ *((int *)&__m256_op2[2]) = 0xfe02fffe;
+ *((int *)&__m256_op2[1]) = 0xb71c413b;
+ *((int *)&__m256_op2[0]) = 0x199d04b5;
+ *((int *)&__m256_result[7]) = 0x370036db;
+ *((int *)&__m256_result[6]) = 0x92c4007e;
+ *((int *)&__m256_result[5]) = 0x37146213;
+ *((int *)&__m256_result[4]) = 0x7c1e0049;
+ *((int *)&__m256_result[3]) = 0x800000fe;
+ *((int *)&__m256_result[2]) = 0x7e02fffe;
+ *((int *)&__m256_result[1]) = 0x371c413b;
+ *((int *)&__m256_result[0]) = 0x999d04b5;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x3f7f7f7e;
+ *((int *)&__m256_op1[4]) = 0xff800000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x3f7f7f7e;
+ *((int *)&__m256_op1[0]) = 0xff800000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x7fffffff;
+ *((int *)&__m256_op2[4]) = 0xff7fffff;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x7fffffff;
+ *((int *)&__m256_op2[0]) = 0xff7fffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x7fffffff;
+ *((int *)&__m256_result[4]) = 0x7fc00000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x7fffffff;
+ *((int *)&__m256_result[0]) = 0x7fc00000;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffafaf;
+ *((int *)&__m256_op0[4]) = 0xb3b3dc9d;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffafaf;
+ *((int *)&__m256_op0[0]) = 0xb3b3dc9d;
+ *((int *)&__m256_op1[7]) = 0x00020000;
+ *((int *)&__m256_op1[6]) = 0x00020000;
+ *((int *)&__m256_op1[5]) = 0x00220021;
+ *((int *)&__m256_op1[4]) = 0x004a007e;
+ *((int *)&__m256_op1[3]) = 0x00020000;
+ *((int *)&__m256_op1[2]) = 0x00020000;
+ *((int *)&__m256_op1[1]) = 0x00220021;
+ *((int *)&__m256_op1[0]) = 0x004a007e;
+ *((int *)&__m256_op2[7]) = 0x00000001;
+ *((int *)&__m256_op2[6]) = 0x00007f7f;
+ *((int *)&__m256_op2[5]) = 0x00000001;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000001;
+ *((int *)&__m256_op2[2]) = 0x00007f7f;
+ *((int *)&__m256_op2[1]) = 0x00000001;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000001;
+ *((int *)&__m256_result[6]) = 0x80007f7f;
+ *((int *)&__m256_result[5]) = 0xffffafaf;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000001;
+ *((int *)&__m256_result[2]) = 0x80007f7f;
+ *((int *)&__m256_result[1]) = 0xffffafaf;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0xffffffe5;
+ *((int *)&__m256_op2[6]) = 0xffffffe5;
+ *((int *)&__m256_op2[5]) = 0xffffffe5;
+ *((int *)&__m256_op2[4]) = 0xffffffe5;
+ *((int *)&__m256_op2[3]) = 0xffffffe5;
+ *((int *)&__m256_op2[2]) = 0xffffffe5;
+ *((int *)&__m256_op2[1]) = 0xffffffe5;
+ *((int *)&__m256_op2[0]) = 0xffffffe5;
+ *((int *)&__m256_result[7]) = 0xffffffe5;
+ *((int *)&__m256_result[6]) = 0xffffffe5;
+ *((int *)&__m256_result[5]) = 0xffffffe5;
+ *((int *)&__m256_result[4]) = 0xffffffe5;
+ *((int *)&__m256_result[3]) = 0xffffffe5;
+ *((int *)&__m256_result[2]) = 0xffffffe5;
+ *((int *)&__m256_result[1]) = 0xffffffe5;
+ *((int *)&__m256_result[0]) = 0xffffffe5;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xbfffffff;
+ *((int *)&__m256_op0[6]) = 0xffff8000;
+ *((int *)&__m256_op0[5]) = 0xbfff8000;
+ *((int *)&__m256_op0[4]) = 0x80000000;
+ *((int *)&__m256_op0[3]) = 0xbfffffff;
+ *((int *)&__m256_op0[2]) = 0xffff8000;
+ *((int *)&__m256_op0[1]) = 0xbfff8000;
+ *((int *)&__m256_op0[0]) = 0x80000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0xffff8000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0xffff8000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x02020102;
+ *((int *)&__m256_op1[6]) = 0x02020102;
+ *((int *)&__m256_op1[5]) = 0x02020102;
+ *((int *)&__m256_op1[4]) = 0x02020102;
+ *((int *)&__m256_op1[3]) = 0x02020102;
+ *((int *)&__m256_op1[2]) = 0x02020102;
+ *((int *)&__m256_op1[1]) = 0x02020102;
+ *((int *)&__m256_op1[0]) = 0x02020102;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000008;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000008;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000008;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000008;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000008;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000008;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000008;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000008;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000001;
+ *((int *)&__m256_op2[4]) = 0x00000001;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000001;
+ *((int *)&__m256_op2[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x80000001;
+ *((int *)&__m256_result[4]) = 0x80000001;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x80000001;
+ *((int *)&__m256_result[0]) = 0x80000001;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000040;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000040;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x40404040;
+ *((int *)&__m256_op2[6]) = 0x40404040;
+ *((int *)&__m256_op2[5]) = 0x40404040;
+ *((int *)&__m256_op2[4]) = 0x40404040;
+ *((int *)&__m256_op2[3]) = 0x40404040;
+ *((int *)&__m256_op2[2]) = 0x40404040;
+ *((int *)&__m256_op2[1]) = 0x40404040;
+ *((int *)&__m256_op2[0]) = 0x40404040;
+ *((int *)&__m256_result[7]) = 0xc0404040;
+ *((int *)&__m256_result[6]) = 0xc0404040;
+ *((int *)&__m256_result[5]) = 0xc0404040;
+ *((int *)&__m256_result[4]) = 0xc0404040;
+ *((int *)&__m256_result[3]) = 0xc0404040;
+ *((int *)&__m256_result[2]) = 0xc0404040;
+ *((int *)&__m256_result[1]) = 0xc0404040;
+ *((int *)&__m256_result[0]) = 0xc0404040;
+ __m256_out = __lasx_xvfmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c
new file mode 100644
index 0000000..207ba16
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c
@@ -0,0 +1,230 @@
+/* { 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 *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_op1[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256d_op1[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256d_op1[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256d_op1[0]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256d_result[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256d_result[0]) = 0x45c5c5c545c5c5c5;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000004290;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000002a96ba;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000004290;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000002a96ba;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101010100005400;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000004290;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000004290;
+ *((unsigned long *)&__m256d_result[0]) = 0x0101010100005400;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0101000101010001;
+ __m256d_out = __lasx_xvfmax_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0200000202000002;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0200000202000002;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0101000101010001;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0101000101010001;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmin_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c
new file mode 100644
index 0000000..9b77032
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c
@@ -0,0 +1,560 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00010101;
+ *((int *)&__m256_op1[6]) = 0x01010101;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00010100;
+ *((int *)&__m256_op1[1]) = 0x00010000;
+ *((int *)&__m256_op1[0]) = 0x01000100;
+ *((int *)&__m256_result[7]) = 0x00010101;
+ *((int *)&__m256_result[6]) = 0x01010101;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00010100;
+ *((int *)&__m256_result[1]) = 0x00010000;
+ *((int *)&__m256_result[0]) = 0x01000100;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x59800000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x59800000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x59800000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x59800000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00010001;
+ *((int *)&__m256_op1[6]) = 0x00010001;
+ *((int *)&__m256_op1[5]) = 0x00010001;
+ *((int *)&__m256_op1[4]) = 0x00010001;
+ *((int *)&__m256_op1[3]) = 0x00010001;
+ *((int *)&__m256_op1[2]) = 0x00010001;
+ *((int *)&__m256_op1[1]) = 0x00010001;
+ *((int *)&__m256_op1[0]) = 0x00010001;
+ *((int *)&__m256_result[7]) = 0x00010001;
+ *((int *)&__m256_result[6]) = 0x00010001;
+ *((int *)&__m256_result[5]) = 0x00010001;
+ *((int *)&__m256_result[4]) = 0x00010001;
+ *((int *)&__m256_result[3]) = 0x00010001;
+ *((int *)&__m256_result[2]) = 0x00010001;
+ *((int *)&__m256_result[1]) = 0x00010001;
+ *((int *)&__m256_result[0]) = 0x00010001;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x7fefffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x7fefffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x000000ff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x000000ff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00003fe0;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00003fe0;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00003fe0;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00003fe0;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0000000e;
+ *((int *)&__m256_op1[6]) = 0x0000000e;
+ *((int *)&__m256_op1[5]) = 0x0000000e;
+ *((int *)&__m256_op1[4]) = 0x0000000e;
+ *((int *)&__m256_op1[3]) = 0x0000000e;
+ *((int *)&__m256_op1[2]) = 0x0000000e;
+ *((int *)&__m256_op1[1]) = 0x0000000e;
+ *((int *)&__m256_op1[0]) = 0x0000000e;
+ *((int *)&__m256_result[7]) = 0x0000000e;
+ *((int *)&__m256_result[6]) = 0x0000000e;
+ *((int *)&__m256_result[5]) = 0x0000000e;
+ *((int *)&__m256_result[4]) = 0x0000000e;
+ *((int *)&__m256_result[3]) = 0x0000000e;
+ *((int *)&__m256_result[2]) = 0x0000000e;
+ *((int *)&__m256_result[1]) = 0x0000000e;
+ *((int *)&__m256_result[0]) = 0x0000000e;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffdbbbcf;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffb8579f;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffdbbbcf;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffb8579f;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xfff8579f;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xfff8579f;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x40404040;
+ *((int *)&__m256_op1[6]) = 0x40404040;
+ *((int *)&__m256_op1[5]) = 0x40404040;
+ *((int *)&__m256_op1[4]) = 0x40404040;
+ *((int *)&__m256_op1[3]) = 0x40404040;
+ *((int *)&__m256_op1[2]) = 0x40404040;
+ *((int *)&__m256_op1[1]) = 0x40404040;
+ *((int *)&__m256_op1[0]) = 0x40404040;
+ *((int *)&__m256_result[7]) = 0x40404040;
+ *((int *)&__m256_result[6]) = 0x40404040;
+ *((int *)&__m256_result[5]) = 0x40404040;
+ *((int *)&__m256_result[4]) = 0x40404040;
+ *((int *)&__m256_result[3]) = 0x40404040;
+ *((int *)&__m256_result[2]) = 0x40404040;
+ *((int *)&__m256_result[1]) = 0x40404040;
+ *((int *)&__m256_result[0]) = 0x40404040;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x0000006d;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0010006d;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x0000006d;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0010006d;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00080040;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00080040;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00080040;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00080040;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00080040;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x0010006d;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00080040;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x0010006d;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x000002ff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x000002ff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x000002ff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x000002ff;
+ __m256_out = __lasx_xvfmax_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x7ff90000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x1ff60000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0xfffffffe;
+ *((int *)&__m256_op1[4]) = 0x00000001;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0xfffffffe;
+ *((int *)&__m256_op1[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000001;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000001;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x0218ff78;
+ *((int *)&__m256_op1[6]) = 0xfc38fc38;
+ *((int *)&__m256_op1[5]) = 0xfc000000;
+ *((int *)&__m256_op1[4]) = 0x00000048;
+ *((int *)&__m256_op1[3]) = 0x0218ff78;
+ *((int *)&__m256_op1[2]) = 0xfc38fc38;
+ *((int *)&__m256_op1[1]) = 0xfc000000;
+ *((int *)&__m256_op1[0]) = 0x00000048;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0xfc38fc38;
+ *((int *)&__m256_result[5]) = 0xfc000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0xfc38fc38;
+ *((int *)&__m256_result[1]) = 0xfc000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x000000f0;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x000000f0;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x000000f0;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x000000f0;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffe7;
+ *((int *)&__m256_op0[6]) = 0xffffffe7;
+ *((int *)&__m256_op0[5]) = 0xffffffe7;
+ *((int *)&__m256_op0[4]) = 0xffffffe7;
+ *((int *)&__m256_op0[3]) = 0xffffffe7;
+ *((int *)&__m256_op0[2]) = 0xffffffe7;
+ *((int *)&__m256_op0[1]) = 0xffffffe7;
+ *((int *)&__m256_op0[0]) = 0xffffffe7;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmin_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c
new file mode 100644
index 0000000..96bbb94
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c
@@ -0,0 +1,230 @@
+/* { 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 *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000018;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000018;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000018;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000018;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0002000000010000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0002000000010000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000001;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmaxa_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op1[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op1[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op1[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x00000000000000ff;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7efefefe80ffffff;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfmina_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c
new file mode 100644
index 0000000..c73a8a7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c
@@ -0,0 +1,506 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00005555;
+ *((int *)&__m256_op1[6]) = 0x00005555;
+ *((int *)&__m256_op1[5]) = 0x000307ff;
+ *((int *)&__m256_op1[4]) = 0xfe72e815;
+ *((int *)&__m256_op1[3]) = 0x00005555;
+ *((int *)&__m256_op1[2]) = 0x00005555;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000015;
+ *((int *)&__m256_result[7]) = 0x00005555;
+ *((int *)&__m256_result[6]) = 0x00005555;
+ *((int *)&__m256_result[5]) = 0x000307ff;
+ *((int *)&__m256_result[4]) = 0xfe72e815;
+ *((int *)&__m256_result[3]) = 0x00005555;
+ *((int *)&__m256_result[2]) = 0x00005555;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000015;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x000c0000;
+ *((int *)&__m256_op0[3]) = 0x00ff00ff;
+ *((int *)&__m256_op0[2]) = 0x00ff00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x00040000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00ff00ff;
+ *((int *)&__m256_result[6]) = 0x00ff00ff;
+ *((int *)&__m256_result[5]) = 0x00ff00ff;
+ *((int *)&__m256_result[4]) = 0x000c0000;
+ *((int *)&__m256_result[3]) = 0x00ff00ff;
+ *((int *)&__m256_result[2]) = 0x00ff00ff;
+ *((int *)&__m256_result[1]) = 0x00ff00ff;
+ *((int *)&__m256_result[0]) = 0x00040000;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x000007ff;
+ *((int *)&__m256_op0[6]) = 0x000007ff;
+ *((int *)&__m256_op0[5]) = 0x000007ff;
+ *((int *)&__m256_op0[4]) = 0xfffff800;
+ *((int *)&__m256_op0[3]) = 0x000007ff;
+ *((int *)&__m256_op0[2]) = 0x000007ff;
+ *((int *)&__m256_op0[1]) = 0x000007ff;
+ *((int *)&__m256_op0[0]) = 0xfffff800;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x000007ff;
+ *((int *)&__m256_result[6]) = 0x000007ff;
+ *((int *)&__m256_result[5]) = 0x000007ff;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x000007ff;
+ *((int *)&__m256_result[2]) = 0x000007ff;
+ *((int *)&__m256_result[1]) = 0x000007ff;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x001f00e0;
+ *((int *)&__m256_op0[4]) = 0x1f1f1fff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x001f00e0;
+ *((int *)&__m256_op0[0]) = 0x1f1f1fff;
+ *((int *)&__m256_op1[7]) = 0x80000000;
+ *((int *)&__m256_op1[6]) = 0x80000000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0xff800000;
+ *((int *)&__m256_op1[3]) = 0x80000000;
+ *((int *)&__m256_op1[2]) = 0x80000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0xff800000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000001;
+ *((int *)&__m256_result[5]) = 0x001f00e0;
+ *((int *)&__m256_result[4]) = 0xff800000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000001;
+ *((int *)&__m256_result[1]) = 0x001f00e0;
+ *((int *)&__m256_result[0]) = 0xff800000;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000001;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000001;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00009fff;
+ *((int *)&__m256_op0[6]) = 0x00002001;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00009fff;
+ *((int *)&__m256_op0[2]) = 0x00002001;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0xfffeb683;
+ *((int *)&__m256_op1[6]) = 0x9ffffd80;
+ *((int *)&__m256_op1[5]) = 0xfffe97c0;
+ *((int *)&__m256_op1[4]) = 0x20010001;
+ *((int *)&__m256_op1[3]) = 0xfffeb683;
+ *((int *)&__m256_op1[2]) = 0x9ffffd80;
+ *((int *)&__m256_op1[1]) = 0xfffe97c0;
+ *((int *)&__m256_op1[0]) = 0x20010001;
+ *((int *)&__m256_result[7]) = 0x00009fff;
+ *((int *)&__m256_result[6]) = 0x9ffffd80;
+ *((int *)&__m256_result[5]) = 0x0000ffff;
+ *((int *)&__m256_result[4]) = 0x20010001;
+ *((int *)&__m256_result[3]) = 0x00009fff;
+ *((int *)&__m256_result[2]) = 0x9ffffd80;
+ *((int *)&__m256_result[1]) = 0x0000ffff;
+ *((int *)&__m256_result[0]) = 0x20010001;
+ __m256_out = __lasx_xvfmaxa_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000170;
+ *((int *)&__m256_op0[6]) = 0x00000080;
+ *((int *)&__m256_op0[5]) = 0xc0650055;
+ *((int *)&__m256_op0[4]) = 0x0055ffab;
+ *((int *)&__m256_op0[3]) = 0x00000170;
+ *((int *)&__m256_op0[2]) = 0x00000080;
+ *((int *)&__m256_op0[1]) = 0xc0650055;
+ *((int *)&__m256_op0[0]) = 0x0055ffab;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffff0000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffff0000;
+ *((int *)&__m256_op1[7]) = 0xfffefffe;
+ *((int *)&__m256_op1[6]) = 0xfffefffe;
+ *((int *)&__m256_op1[5]) = 0xfffefffe;
+ *((int *)&__m256_op1[4]) = 0xfffefffe;
+ *((int *)&__m256_op1[3]) = 0xfffefffe;
+ *((int *)&__m256_op1[2]) = 0xfffefffe;
+ *((int *)&__m256_op1[1]) = 0xfffefffe;
+ *((int *)&__m256_op1[0]) = 0xfffefffe;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xffff0000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xffff0000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00fe01f0;
+ *((int *)&__m256_op0[6]) = 0x00010000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00c40086;
+ *((int *)&__m256_op0[3]) = 0x00fe01f0;
+ *((int *)&__m256_op0[2]) = 0x00010000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00c40086;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x82a54290;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x028aa700;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x82a54290;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x02a54287;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00010000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00c40086;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00010000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00c40086;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x02a54290;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0154dc84;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x02a54290;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000089;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x02a54290;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0154dc84;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x02a54290;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000089;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x02a54290;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x0154dc84;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x02a54290;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000089;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x04000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x04000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00100000;
+ *((int *)&__m256_op0[6]) = 0x00100000;
+ *((int *)&__m256_op0[5]) = 0x00100000;
+ *((int *)&__m256_op0[4]) = 0x00100000;
+ *((int *)&__m256_op0[3]) = 0x00100000;
+ *((int *)&__m256_op0[2]) = 0x00100000;
+ *((int *)&__m256_op0[1]) = 0x00100000;
+ *((int *)&__m256_op0[0]) = 0x00100000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000010;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000010;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000080;
+ *((int *)&__m256_op0[6]) = 0x00000080;
+ *((int *)&__m256_op0[5]) = 0x00000080;
+ *((int *)&__m256_op0[4]) = 0x00000080;
+ *((int *)&__m256_op0[3]) = 0x00000080;
+ *((int *)&__m256_op0[2]) = 0x00000080;
+ *((int *)&__m256_op0[1]) = 0x00000080;
+ *((int *)&__m256_op0[0]) = 0x00000080;
+ *((int *)&__m256_op1[7]) = 0x00000001;
+ *((int *)&__m256_op1[6]) = 0x00000001;
+ *((int *)&__m256_op1[5]) = 0x00000001;
+ *((int *)&__m256_op1[4]) = 0x00000001;
+ *((int *)&__m256_op1[3]) = 0x00000001;
+ *((int *)&__m256_op1[2]) = 0x00000001;
+ *((int *)&__m256_op1[1]) = 0x00000001;
+ *((int *)&__m256_op1[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000001;
+ *((int *)&__m256_result[6]) = 0x00000001;
+ *((int *)&__m256_result[5]) = 0x00000001;
+ *((int *)&__m256_result[4]) = 0x00000001;
+ *((int *)&__m256_result[3]) = 0x00000001;
+ *((int *)&__m256_result[2]) = 0x00000001;
+ *((int *)&__m256_result[1]) = 0x00000001;
+ *((int *)&__m256_result[0]) = 0x00000001;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfmina_s (__m256_op0, __m256_op1);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c
new file mode 100644
index 0000000..d161c85
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c
@@ -0,0 +1,324 @@
+/* { 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 *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0001010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000010100;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0001000001000100;
+ *((unsigned long *)&__m256d_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256d_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[0]) = 0xffffffffe651bfff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffe651bfff;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x3ff73ff83ff73ff8;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x3ff73ff83ff73ff8;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256d_op2[2]) = 0x2020202020206431;
+ *((unsigned long *)&__m256d_op2[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256d_op2[0]) = 0x2020202020206431;
+ *((unsigned long *)&__m256d_result[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256d_result[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256d_result[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256d_result[0]) = 0xa020202020206431;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256d_op0[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256d_op0[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256d_op2[2]) = 0x7f7f7f5c8f374980;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256d_op2[0]) = 0x7f7f7f5c8f374980;
+ *((unsigned long *)&__m256d_result[3]) = 0x8001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x8001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256d_op1[3]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256d_op1[2]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256d_op1[1]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256d_op1[0]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfff0000000000000;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1080108010060002;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1080108010060002;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256d_op2[3]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7fff00017fff0000;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x1716151417161514;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1716151417161514;
+ *((unsigned long *)&__m256d_op0[1]) = 0x1716151417161514;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1716151417161514;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000002780;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000002780;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000002780;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000002780;
+ __m256d_out = __lasx_xvfnmadd_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0080200000802000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0080200000802000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0080200000802000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0080200000802000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256d_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256d_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256d_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffba0c05;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffffffba0c05;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffba0c05;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffba0c05;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000005000000020;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000005000000020;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0010000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0010000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0008000000000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffff800300000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffe0000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000700000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000700000000;
+ *((unsigned long *)&__m256d_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfnmsub_d (__m256d_op0, __m256d_op1, __m256d_op2);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c
new file mode 100644
index 0000000..c5e9576
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c
@@ -0,0 +1,895 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffffff;
+ *((int *)&__m256_op1[6]) = 0xffff5f5c;
+ *((int *)&__m256_op1[5]) = 0xffffffff;
+ *((int *)&__m256_op1[4]) = 0xffff5f5c;
+ *((int *)&__m256_op1[3]) = 0xffffffff;
+ *((int *)&__m256_op1[2]) = 0xffff5f5c;
+ *((int *)&__m256_op1[1]) = 0xffffffff;
+ *((int *)&__m256_op1[0]) = 0xffff5f5c;
+ *((int *)&__m256_op2[7]) = 0x0000000f;
+ *((int *)&__m256_op2[6]) = 0x0000000f;
+ *((int *)&__m256_op2[5]) = 0xff00ff0f;
+ *((int *)&__m256_op2[4]) = 0xff005f0f;
+ *((int *)&__m256_op2[3]) = 0x0000000f;
+ *((int *)&__m256_op2[2]) = 0x0000000f;
+ *((int *)&__m256_op2[1]) = 0xff00ff0f;
+ *((int *)&__m256_op2[0]) = 0xff005f0f;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffff5f5c;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffff5f5c;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffff5f5c;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffff5f5c;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00010001;
+ *((int *)&__m256_op0[6]) = 0x00010000;
+ *((int *)&__m256_op0[5]) = 0x020afefb;
+ *((int *)&__m256_op0[4]) = 0x08140000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x0003fffc;
+ *((int *)&__m256_op0[0]) = 0x00060000;
+ *((int *)&__m256_op1[7]) = 0x80000000;
+ *((int *)&__m256_op1[6]) = 0x40000000;
+ *((int *)&__m256_op1[5]) = 0x40000000;
+ *((int *)&__m256_op1[4]) = 0x10000010;
+ *((int *)&__m256_op1[3]) = 0x80000000;
+ *((int *)&__m256_op1[2]) = 0x40000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x40000010;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x000000ff;
+ *((int *)&__m256_op2[4]) = 0x0001ffff;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x0000ffff;
+ *((int *)&__m256_op2[0]) = 0x00010000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80020000;
+ *((int *)&__m256_result[5]) = 0x828aff0b;
+ *((int *)&__m256_result[4]) = 0x8001ffff;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000002;
+ *((int *)&__m256_result[1]) = 0x8000ffff;
+ *((int *)&__m256_result[0]) = 0x800d0002;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x1f3d2101;
+ *((int *)&__m256_op0[6]) = 0x1f3d2101;
+ *((int *)&__m256_op0[5]) = 0x1f3d2101;
+ *((int *)&__m256_op0[4]) = 0xd07dbf01;
+ *((int *)&__m256_op0[3]) = 0x9f1fd080;
+ *((int *)&__m256_op0[2]) = 0x1f3d2101;
+ *((int *)&__m256_op0[1]) = 0x1f3d2101;
+ *((int *)&__m256_op0[0]) = 0xd07dbf01;
+ *((int *)&__m256_op1[7]) = 0x1d949d94;
+ *((int *)&__m256_op1[6]) = 0x9d949d95;
+ *((int *)&__m256_op1[5]) = 0x1d949d94;
+ *((int *)&__m256_op1[4]) = 0x9e1423d4;
+ *((int *)&__m256_op1[3]) = 0x1de9a03f;
+ *((int *)&__m256_op1[2]) = 0x3dd41d95;
+ *((int *)&__m256_op1[1]) = 0x1d949d94;
+ *((int *)&__m256_op1[0]) = 0x9e1423d4;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x8001b72e;
+ *((int *)&__m256_result[6]) = 0x0001b72e;
+ *((int *)&__m256_result[5]) = 0x8001b72e;
+ *((int *)&__m256_result[4]) = 0xaf12d5f0;
+ *((int *)&__m256_result[3]) = 0x00024763;
+ *((int *)&__m256_result[2]) = 0x9d9cb530;
+ *((int *)&__m256_result[1]) = 0x8001b72e;
+ *((int *)&__m256_result[0]) = 0xaf12d5f0;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x1f0fdf7f;
+ *((int *)&__m256_op0[6]) = 0x3e3b31d4;
+ *((int *)&__m256_op0[5]) = 0x7ff80000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x1f0fdf7f;
+ *((int *)&__m256_op0[2]) = 0x3e3b31d4;
+ *((int *)&__m256_op0[1]) = 0x7ff80000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x7ff80000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x7ff80000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x80000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x80000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x0000ffff;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x0000ffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000001;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000001;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000001;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000001;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000001;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000001;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000001;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000200;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000200;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000200;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000200;
+ *((int *)&__m256_op2[7]) = 0xffffffa0;
+ *((int *)&__m256_op2[6]) = 0x00000001;
+ *((int *)&__m256_op2[5]) = 0xffffffe0;
+ *((int *)&__m256_op2[4]) = 0x00000001;
+ *((int *)&__m256_op2[3]) = 0xffffffa0;
+ *((int *)&__m256_op2[2]) = 0x00000001;
+ *((int *)&__m256_op2[1]) = 0xffffffe0;
+ *((int *)&__m256_op2[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0xffffffa0;
+ *((int *)&__m256_result[6]) = 0x80000001;
+ *((int *)&__m256_result[5]) = 0xffffffe0;
+ *((int *)&__m256_result[4]) = 0x80000001;
+ *((int *)&__m256_result[3]) = 0xffffffa0;
+ *((int *)&__m256_result[2]) = 0x80000001;
+ *((int *)&__m256_result[1]) = 0xffffffe0;
+ *((int *)&__m256_result[0]) = 0x80000001;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x49810081;
+ *((int *)&__m256_op1[6]) = 0x4843ffe1;
+ *((int *)&__m256_op1[5]) = 0x49810081;
+ *((int *)&__m256_op1[4]) = 0x68410001;
+ *((int *)&__m256_op1[3]) = 0x49810081;
+ *((int *)&__m256_op1[2]) = 0x4843ffe1;
+ *((int *)&__m256_op1[1]) = 0x49810081;
+ *((int *)&__m256_op1[0]) = 0x68410001;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00009fff;
+ *((int *)&__m256_op0[6]) = 0x00002001;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0x0000ffff;
+ *((int *)&__m256_op0[3]) = 0x00009fff;
+ *((int *)&__m256_op0[2]) = 0x00002001;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_op1[7]) = 0xfffeb683;
+ *((int *)&__m256_op1[6]) = 0x9ffffd80;
+ *((int *)&__m256_op1[5]) = 0xfffe97c0;
+ *((int *)&__m256_op1[4]) = 0x20010001;
+ *((int *)&__m256_op1[3]) = 0xfffeb683;
+ *((int *)&__m256_op1[2]) = 0x9ffffd80;
+ *((int *)&__m256_op1[1]) = 0xfffe97c0;
+ *((int *)&__m256_op1[0]) = 0x20010001;
+ *((int *)&__m256_op2[7]) = 0x00009fff;
+ *((int *)&__m256_op2[6]) = 0x00002001;
+ *((int *)&__m256_op2[5]) = 0x0000ffff;
+ *((int *)&__m256_op2[4]) = 0x0000ffff;
+ *((int *)&__m256_op2[3]) = 0x00009fff;
+ *((int *)&__m256_op2[2]) = 0x00002001;
+ *((int *)&__m256_op2[1]) = 0x0000ffff;
+ *((int *)&__m256_op2[0]) = 0x0000ffff;
+ *((int *)&__m256_result[7]) = 0xfffeb683;
+ *((int *)&__m256_result[6]) = 0x80002001;
+ *((int *)&__m256_result[5]) = 0xfffe97c0;
+ *((int *)&__m256_result[4]) = 0x8000ffff;
+ *((int *)&__m256_result[3]) = 0xfffeb683;
+ *((int *)&__m256_result[2]) = 0x80002001;
+ *((int *)&__m256_result[1]) = 0xfffe97c0;
+ *((int *)&__m256_result[0]) = 0x8000ffff;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x7fffffff;
+ *((int *)&__m256_op0[6]) = 0x80000000;
+ *((int *)&__m256_op0[5]) = 0x7fffffff;
+ *((int *)&__m256_op0[4]) = 0x80000000;
+ *((int *)&__m256_op0[3]) = 0x7fffffff;
+ *((int *)&__m256_op0[2]) = 0x80000000;
+ *((int *)&__m256_op0[1]) = 0x7fffffff;
+ *((int *)&__m256_op0[0]) = 0x80000000;
+ *((int *)&__m256_op1[7]) = 0xfd02fd02;
+ *((int *)&__m256_op1[6]) = 0xfd02fd02;
+ *((int *)&__m256_op1[5]) = 0xfd02fd02;
+ *((int *)&__m256_op1[4]) = 0xfd02fd02;
+ *((int *)&__m256_op1[3]) = 0xfd02fd02;
+ *((int *)&__m256_op1[2]) = 0xfd02fd02;
+ *((int *)&__m256_op1[1]) = 0xfd02fd02;
+ *((int *)&__m256_op1[0]) = 0xfd02fd02;
+ *((int *)&__m256_op2[7]) = 0xfd02fd02;
+ *((int *)&__m256_op2[6]) = 0xfd02fd02;
+ *((int *)&__m256_op2[5]) = 0xfd02fd02;
+ *((int *)&__m256_op2[4]) = 0xfd02fd02;
+ *((int *)&__m256_op2[3]) = 0xfd02fd02;
+ *((int *)&__m256_op2[2]) = 0xfd02fd02;
+ *((int *)&__m256_op2[1]) = 0xfd02fd02;
+ *((int *)&__m256_op2[0]) = 0xfd02fd02;
+ *((int *)&__m256_result[7]) = 0x7fffffff;
+ *((int *)&__m256_result[6]) = 0x7d02fd02;
+ *((int *)&__m256_result[5]) = 0x7fffffff;
+ *((int *)&__m256_result[4]) = 0x7d02fd02;
+ *((int *)&__m256_result[3]) = 0x7fffffff;
+ *((int *)&__m256_result[2]) = 0x7d02fd02;
+ *((int *)&__m256_result[1]) = 0x7fffffff;
+ *((int *)&__m256_result[0]) = 0x7d02fd02;
+ __m256_out = __lasx_xvfnmadd_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xbf7f7fff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xe651bfff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0xffffffff;
+ *((int *)&__m256_op2[2]) = 0xf328dfff;
+ *((int *)&__m256_op2[1]) = 0x6651bfff;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x07070707;
+ *((int *)&__m256_op0[5]) = 0x01020400;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00020100;
+ *((int *)&__m256_op0[1]) = 0x07030200;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0xffffff80;
+ *((int *)&__m256_op1[6]) = 0xfefeff00;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x01000400;
+ *((int *)&__m256_op1[3]) = 0xffffff80;
+ *((int *)&__m256_op1[2]) = 0xfeff0000;
+ *((int *)&__m256_op1[1]) = 0x02020080;
+ *((int *)&__m256_op1[0]) = 0x5c800400;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0xffffffff;
+ *((int *)&__m256_op2[2]) = 0xf328dfff;
+ *((int *)&__m256_op2[1]) = 0x6651bfff;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffff80;
+ *((int *)&__m256_result[6]) = 0x46867f79;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xf328dfff;
+ *((int *)&__m256_result[1]) = 0x6651bfff;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xe0000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xe0000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xe0000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xe0000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x80000000;
+ *((int *)&__m256_op1[4]) = 0x80000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x80000000;
+ *((int *)&__m256_op1[0]) = 0x80000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x7f800000;
+ *((int *)&__m256_op2[6]) = 0x7f800000;
+ *((int *)&__m256_op2[5]) = 0x7fc00000;
+ *((int *)&__m256_op2[4]) = 0x7fc00000;
+ *((int *)&__m256_op2[3]) = 0x7f800000;
+ *((int *)&__m256_op2[2]) = 0x7f800000;
+ *((int *)&__m256_op2[1]) = 0x7fc00000;
+ *((int *)&__m256_op2[0]) = 0x7fc00000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7fc00000;
+ *((int *)&__m256_result[4]) = 0x7fc00000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7fc00000;
+ *((int *)&__m256_result[0]) = 0x7fc00000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x7fefffff;
+ *((int *)&__m256_op1[6]) = 0xffffffff;
+ *((int *)&__m256_op1[5]) = 0x7fefffff;
+ *((int *)&__m256_op1[4]) = 0xffffffff;
+ *((int *)&__m256_op1[3]) = 0x7fefffff;
+ *((int *)&__m256_op1[2]) = 0xffffffff;
+ *((int *)&__m256_op1[1]) = 0x7fefffff;
+ *((int *)&__m256_op1[0]) = 0xffffffff;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7fefffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x7fefffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x7fefffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x7fefffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xf7f8f7f8;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00003f78;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xf7f8f7f8;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00003f78;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0xf7f8f7f8;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00003f78;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0xf7f8f7f8;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00003f78;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0xff800000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0xff800000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0xffffffff;
+ *((int *)&__m256_op2[4]) = 0xffffffff;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0xffffffff;
+ *((int *)&__m256_op2[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x01010100;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000405;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x01010100;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000405;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x01010100;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000405;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x01010100;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000405;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x01010100;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0x00000405;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x01010100;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0x00000405;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00800080;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000202;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00800080;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000202;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0xff88ff88;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0xff88ff88;
+ *((int *)&__m256_op2[7]) = 0x00000000;
+ *((int *)&__m256_op2[6]) = 0x00000000;
+ *((int *)&__m256_op2[5]) = 0x00000000;
+ *((int *)&__m256_op2[4]) = 0x00000000;
+ *((int *)&__m256_op2[3]) = 0x00000000;
+ *((int *)&__m256_op2[2]) = 0x00000000;
+ *((int *)&__m256_op2[1]) = 0x00000000;
+ *((int *)&__m256_op2[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x80000000;
+ *((int *)&__m256_result[4]) = 0xffc8ff88;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x80000000;
+ *((int *)&__m256_result[0]) = 0xffc8ff88;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x00000000;
+ *((int *)&__m256_op1[4]) = 0x00000000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x00000000;
+ *((int *)&__m256_op1[0]) = 0x00000000;
+ *((int *)&__m256_op2[7]) = 0x001fffff;
+ *((int *)&__m256_op2[6]) = 0xffffffff;
+ *((int *)&__m256_op2[5]) = 0xffffffff;
+ *((int *)&__m256_op2[4]) = 0xffffffff;
+ *((int *)&__m256_op2[3]) = 0x001fffff;
+ *((int *)&__m256_op2[2]) = 0xffffffff;
+ *((int *)&__m256_op2[1]) = 0xffffffff;
+ *((int *)&__m256_op2[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x001fffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x001fffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_op1[7]) = 0x00000000;
+ *((int *)&__m256_op1[6]) = 0x00000000;
+ *((int *)&__m256_op1[5]) = 0x7fff8000;
+ *((int *)&__m256_op1[4]) = 0x7fff0000;
+ *((int *)&__m256_op1[3]) = 0x00000000;
+ *((int *)&__m256_op1[2]) = 0x00000000;
+ *((int *)&__m256_op1[1]) = 0x7fff8000;
+ *((int *)&__m256_op1[0]) = 0x7fff0000;
+ *((int *)&__m256_op2[7]) = 0xffffffff;
+ *((int *)&__m256_op2[6]) = 0xffffffff;
+ *((int *)&__m256_op2[5]) = 0xffffffff;
+ *((int *)&__m256_op2[4]) = 0xffffff10;
+ *((int *)&__m256_op2[3]) = 0xffffffff;
+ *((int *)&__m256_op2[2]) = 0xffffffff;
+ *((int *)&__m256_op2[1]) = 0xffffffff;
+ *((int *)&__m256_op2[0]) = 0xffffff10;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffff10;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffff10;
+ __m256_out = __lasx_xvfnmsub_s (__m256_op0, __m256_op1, __m256_op2);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c
new file mode 100644
index 0000000..4babf16
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c
@@ -0,0 +1,429 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#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 *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x0);
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000008050501;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000008050501;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_result[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_result[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_result[0]) = 0xfffffffffffffff8;
+ __m256d_out = __lasx_xvfrint_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7c00000880008000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_result[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256d_result[0]) = 0x6040190d00000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op0[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256d_op0[0]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x4084800000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x4084800000000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_result[3]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_result[2]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_result[1]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m256d_result[0]) = 0xffff0001ffff0001;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x3fffbfff80000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00004000007f8000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x3fffbfff80000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00004000007f8000;
+ *((unsigned long *)&__m256d_result[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrne_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x3ff0000000000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xfffffefe00000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000100da000100fd;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0001ffe20001fefd;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0001009a000100fd;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0001ff640001fefd;
+ *((unsigned long *)&__m256d_result[3]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x3ff0000000000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256d_op0[2]) = 0x01fc03fc01fc03fc;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256d_op0[0]) = 0x01fc03fc01fc03fc;
+ *((unsigned long *)&__m256d_result[3]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256d_result[2]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256d_result[0]) = 0x3ff0000000000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256d_result[3]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xfc00000000000048;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8000000000000000;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_result[3]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_result[2]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_result[1]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256d_result[0]) = 0xfffffff0fffffff0;
+ __m256d_out = __lasx_xvfrintrp_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x017e017e01dd61de;
+ *((unsigned long *)&__m256d_op0[2]) = 0x5d637d043bc4fc43;
+ *((unsigned long *)&__m256d_op0[1]) = 0x01dcc2dce31bc35d;
+ *((unsigned long *)&__m256d_op0[0]) = 0x5e041d245b85fc43;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x5d637d043bc4fc43;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x5e041d245b85fc43;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_result[3]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_result[2]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_result[1]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256d_result[0]) = 0x7c007c007c007c00;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrm_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000800000098;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000040000ffca;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000800000098;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000040000ff79;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfrintrz_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c
new file mode 100644
index 0000000..9f2fa67
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c
@@ -0,0 +1,723 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#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;
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffff5f5c;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffff605a;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffff5f5c;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffff605a;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffff5f5c;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffff605a;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffff5f5c;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffff605a;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xc5c5c5c4;
+ *((int *)&__m256_op0[6]) = 0xc5c5c5c4;
+ *((int *)&__m256_op0[5]) = 0x45c5c5c5;
+ *((int *)&__m256_op0[4]) = 0x45c5c5c5;
+ *((int *)&__m256_op0[3]) = 0xc5c5c5c4;
+ *((int *)&__m256_op0[2]) = 0xc5c5c5c4;
+ *((int *)&__m256_op0[1]) = 0x45c5c5c5;
+ *((int *)&__m256_op0[0]) = 0x45c5c5c5;
+ *((int *)&__m256_result[7]) = 0xc5c5c800;
+ *((int *)&__m256_result[6]) = 0xc5c5c800;
+ *((int *)&__m256_result[5]) = 0x45c5c800;
+ *((int *)&__m256_result[4]) = 0x45c5c800;
+ *((int *)&__m256_result[3]) = 0xc5c5c800;
+ *((int *)&__m256_result[2]) = 0xc5c5c800;
+ *((int *)&__m256_result[1]) = 0x45c5c800;
+ *((int *)&__m256_result[0]) = 0x45c5c800;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffff6f20;
+ *((int *)&__m256_op0[5]) = 0x0000781e;
+ *((int *)&__m256_op0[4]) = 0x0000f221;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffff6f20;
+ *((int *)&__m256_op0[1]) = 0x0000781e;
+ *((int *)&__m256_op0[0]) = 0x0000f221;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0xffff6f20;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0xffff6f20;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffffb3b4;
+ *((int *)&__m256_op0[5]) = 0xfffffff5;
+ *((int *)&__m256_op0[4]) = 0xffff4738;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffffb3b4;
+ *((int *)&__m256_op0[1]) = 0xfffffff5;
+ *((int *)&__m256_op0[0]) = 0xffff4738;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0xffffb3b4;
+ *((int *)&__m256_result[5]) = 0xfffffff5;
+ *((int *)&__m256_result[4]) = 0xffff4738;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0xffffb3b4;
+ *((int *)&__m256_result[1]) = 0xfffffff5;
+ *((int *)&__m256_result[0]) = 0xffff4738;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00ff0000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00ff0000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00ff0000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00ff0000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00003fea;
+ *((int *)&__m256_op0[6]) = 0x00013feb;
+ *((int *)&__m256_op0[5]) = 0x00003fe9;
+ *((int *)&__m256_op0[4]) = 0x00014022;
+ *((int *)&__m256_op0[3]) = 0x00003fea;
+ *((int *)&__m256_op0[2]) = 0x00013feb;
+ *((int *)&__m256_op0[1]) = 0x00003fe9;
+ *((int *)&__m256_op0[0]) = 0x00014022;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrint_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x01010101;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x01010101;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x01010101;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x01010101;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x01010101;
+ *((int *)&__m256_op0[6]) = 0x01010101;
+ *((int *)&__m256_op0[5]) = 0x01010101;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x01010101;
+ *((int *)&__m256_op0[2]) = 0x01010101;
+ *((int *)&__m256_op0[1]) = 0x01010101;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrne_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x55555555;
+ *((int *)&__m256_op0[6]) = 0x36aaaaac;
+ *((int *)&__m256_op0[5]) = 0x55555555;
+ *((int *)&__m256_op0[4]) = 0xaaaaaaac;
+ *((int *)&__m256_op0[3]) = 0x55555555;
+ *((int *)&__m256_op0[2]) = 0x36aaaaac;
+ *((int *)&__m256_op0[1]) = 0x55555555;
+ *((int *)&__m256_op0[0]) = 0xaaaaaaac;
+ *((int *)&__m256_result[7]) = 0x55555555;
+ *((int *)&__m256_result[6]) = 0x3f800000;
+ *((int *)&__m256_result[5]) = 0x55555555;
+ *((int *)&__m256_result[4]) = 0x80000000;
+ *((int *)&__m256_result[3]) = 0x55555555;
+ *((int *)&__m256_result[2]) = 0x3f800000;
+ *((int *)&__m256_result[1]) = 0x55555555;
+ *((int *)&__m256_result[0]) = 0x80000000;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffc741;
+ *((int *)&__m256_op0[6]) = 0x8a023680;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffff8845;
+ *((int *)&__m256_op0[2]) = 0xbb954b00;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffc741;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0xffff8845;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00200101;
+ *((int *)&__m256_op0[6]) = 0x01610000;
+ *((int *)&__m256_op0[5]) = 0x00612000;
+ *((int *)&__m256_op0[4]) = 0x00610000;
+ *((int *)&__m256_op0[3]) = 0x00200101;
+ *((int *)&__m256_op0[2]) = 0x01610000;
+ *((int *)&__m256_op0[1]) = 0x00612000;
+ *((int *)&__m256_op0[0]) = 0x00610000;
+ *((int *)&__m256_result[7]) = 0x3f800000;
+ *((int *)&__m256_result[6]) = 0x3f800000;
+ *((int *)&__m256_result[5]) = 0x3f800000;
+ *((int *)&__m256_result[4]) = 0x3f800000;
+ *((int *)&__m256_result[3]) = 0x3f800000;
+ *((int *)&__m256_result[2]) = 0x3f800000;
+ *((int *)&__m256_result[1]) = 0x3f800000;
+ *((int *)&__m256_result[0]) = 0x3f800000;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfefefefe;
+ *((int *)&__m256_op0[4]) = 0x01010101;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfefefefe;
+ *((int *)&__m256_op0[0]) = 0x01010101;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0xfefefefe;
+ *((int *)&__m256_result[4]) = 0x3f800000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0xfefefefe;
+ *((int *)&__m256_result[0]) = 0x3f800000;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x1c1c1c1c;
+ *((int *)&__m256_op0[6]) = 0x1c1c1c1c;
+ *((int *)&__m256_op0[5]) = 0xfffffffe;
+ *((int *)&__m256_op0[4]) = 0xffffff00;
+ *((int *)&__m256_op0[3]) = 0x1c1c1c1c;
+ *((int *)&__m256_op0[2]) = 0x1c1c1c1c;
+ *((int *)&__m256_op0[1]) = 0xfffffffe;
+ *((int *)&__m256_op0[0]) = 0xffffff00;
+ *((int *)&__m256_result[7]) = 0x3f800000;
+ *((int *)&__m256_result[6]) = 0x3f800000;
+ *((int *)&__m256_result[5]) = 0xfffffffe;
+ *((int *)&__m256_result[4]) = 0xffffff00;
+ *((int *)&__m256_result[3]) = 0x3f800000;
+ *((int *)&__m256_result[2]) = 0x3f800000;
+ *((int *)&__m256_result[1]) = 0xfffffffe;
+ *((int *)&__m256_result[0]) = 0xffffff00;
+ __m256_out = __lasx_xvfrintrp_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000008;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00080000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x5d20a0a1;
+ *((int *)&__m256_op0[6]) = 0x5d20a0a1;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x5d20a0a1;
+ *((int *)&__m256_op0[2]) = 0x5d20a0a1;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x5d20a0a1;
+ *((int *)&__m256_result[6]) = 0x5d20a0a1;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x5d20a0a1;
+ *((int *)&__m256_result[2]) = 0x5d20a0a1;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x001d001d;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x001d001d;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000033;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000033;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrm_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000300;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000303;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xfffffffe;
+ *((int *)&__m256_op0[5]) = 0xfffffffe;
+ *((int *)&__m256_op0[4]) = 0xfffffefc;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xfffffffe;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xfffffffe;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xfffffffe;
+ *((int *)&__m256_result[5]) = 0xfffffffe;
+ *((int *)&__m256_result[4]) = 0xfffffefc;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xfffffffe;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xfffffffe;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x0001c4e8;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x0001c4e8;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x80000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x80000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0x80000000;
+ *((int *)&__m256_result[6]) = 0x80000000;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0x80000000;
+ *((int *)&__m256_result[2]) = 0x80000000;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xf5fffc00;
+ *((int *)&__m256_op0[6]) = 0xfc000000;
+ *((int *)&__m256_op0[5]) = 0xf5fffc00;
+ *((int *)&__m256_op0[4]) = 0xfc000000;
+ *((int *)&__m256_op0[3]) = 0xf5fffc00;
+ *((int *)&__m256_op0[2]) = 0xfc000000;
+ *((int *)&__m256_op0[1]) = 0xf5fffc00;
+ *((int *)&__m256_op0[0]) = 0xfc000000;
+ *((int *)&__m256_result[7]) = 0xf5fffc00;
+ *((int *)&__m256_result[6]) = 0xfc000000;
+ *((int *)&__m256_result[5]) = 0xf5fffc00;
+ *((int *)&__m256_result[4]) = 0xfc000000;
+ *((int *)&__m256_result[3]) = 0xf5fffc00;
+ *((int *)&__m256_result[2]) = 0xfc000000;
+ *((int *)&__m256_result[1]) = 0xf5fffc00;
+ *((int *)&__m256_result[0]) = 0xfc000000;
+ __m256_out = __lasx_xvfrintrz_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c
new file mode 100644
index 0000000..557f9f8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c
@@ -0,0 +1,381 @@
+/* { 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]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000080000;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000007f00340040;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000007f000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020200008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000008;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x03f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0x03f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x03f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[0]) = 0x03f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op2[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op2[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op2[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op2[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff10;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff10;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xbfbfbfbfbfbfbfbf;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff10;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff10;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x007f007bfffffffb;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x007f007bfffffffb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000c040c0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000c040c0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe000ffffffff08;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe000ffffffff08;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvfrstp_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff10;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff10;
+ __m256i_out = __lasx_xvfrstp_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c
new file mode 100644
index 0000000..cdb7b11
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c
@@ -0,0 +1,350 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x38a966b31be83ee9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5f6108dc25b8e028;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf41a56e8a20878d7;
+ *((unsigned long *)&__m256i_op0[0]) = 0x683b8b67e20c8ee5;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffcd42ffffecc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000475ffff4c51;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000740dffffad17;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f4bffff7130;
+ *((unsigned long *)&__m256i_result[3]) = 0x38a966b31be83ee9;
+ *((unsigned long *)&__m256i_result[2]) = 0x5f6108dc25b80001;
+ *((unsigned long *)&__m256i_result[1]) = 0xf41a56e8a20878d7;
+ *((unsigned long *)&__m256i_result[0]) = 0x683b8b67e20c0001;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1000000000000000;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x17);
+ 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]) = 0x00000000000004fb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff0008;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0008;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x14);
+ 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]) = 0xffff0008ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0008ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ffffff1e9e9e9e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff9e9eb09e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ffffff1e9e9e9e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff9e9eb09e;
+ *((unsigned long *)&__m256i_result[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffc00000ffc0ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffc00000ffc0ffc0;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvfrstpi_b (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000165e0000480d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000165e0000480d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_result[2]) = 0x000016000000480d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_result[0]) = 0x000016000000480d;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe800c0d8fffeeece;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff383efffedf0c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe800c0d8fffeeece;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff383efffedf0c;
+ *((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]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff383efffedf0c;
+ *((unsigned long *)&__m256i_result[1]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff383efffedf0c;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000200000000;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff00ffffffff;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7c007c0080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7c007c0080008000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7c00000880008000;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x1a);
+ 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]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008b03e457db03e;
+ *((unsigned long *)&__m256i_result[2]) = 0x457db03e45a87310;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008b03e457db03e;
+ *((unsigned long *)&__m256i_result[0]) = 0x457db03e45a87310;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000008000b;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000008000b;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000b;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x16);
+ 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]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000000000000;
+ __m256i_out = __lasx_xvfrstpi_h (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01fffe00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01fffe00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((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_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_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]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x10ffffff10000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x10ffffff10000006;
+ __m256i_out = __lasx_xvfrstpi_b (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c
new file mode 100644
index 0000000..18d5c51
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c
@@ -0,0 +1,482 @@
+/* { 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 *)&__m256d_op0[3]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x2f03988e2052463e;
+ *((unsigned long *)&__m256d_result[2]) = 0x2f03988e1409212e;
+ *((unsigned long *)&__m256d_result[1]) = 0x2f03988e2052463e;
+ *((unsigned long *)&__m256d_result[0]) = 0x2f03988e1409212e;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff874dc687870000;
+ *((unsigned long *)&__m256d_result[3]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000100000018;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000100000018;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x1f60000000c00000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x1f60000000c00000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0003030300000100;
+ *((unsigned long *)&__m256d_result[3]) = 0x1febc46085090ea0;
+ *((unsigned long *)&__m256d_result[2]) = 0x1febc46085090ea0;
+ *((unsigned long *)&__m256d_result[1]) = 0x1febc46085090567;
+ *((unsigned long *)&__m256d_result[0]) = 0x1febc46085090567;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x1f9689fdb16cabbd;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x1f9689fdb16cabbd;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff0000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x0000000000000000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000010000000100;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x1fa0000000080000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffff8000;
+ __m256d_out = __lasx_xvfsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffff00000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256d_result[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256d_result[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x5ff00007fff9fff3;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x353bb67af686ad9b;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x353bb67af686ad9b;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001f0000ffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x60000007fffe0001;
+ *((unsigned long *)&__m256d_result[2]) = 0x60000007fffe0001;
+ *((unsigned long *)&__m256d_result[1]) = 0x6056fd4e7926d5c0;
+ *((unsigned long *)&__m256d_result[0]) = 0x6056fd4e1a4616c4;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00001bfa000000f9;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000f900004040;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00001bfa000000f9;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000f900004040;
+ *((unsigned long *)&__m256d_result[3]) = 0x60183329ceb52cf0;
+ *((unsigned long *)&__m256d_result[2]) = 0x6040392cdaf9b3ff;
+ *((unsigned long *)&__m256d_result[1]) = 0x60183329ceb52cf0;
+ *((unsigned long *)&__m256d_result[0]) = 0x6040392cdaf9b3ff;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x3de00103153ff5fb;
+ *((unsigned long *)&__m256d_op0[2]) = 0xbffffffe80000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x3de00103153ff5fb;
+ *((unsigned long *)&__m256d_op0[0]) = 0xbffffffe80000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff8000000000000;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256d_result[3]) = 0x606a20bd700e59a3;
+ *((unsigned long *)&__m256d_result[2]) = 0x6066a09e66c5f1bb;
+ *((unsigned long *)&__m256d_result[1]) = 0x606a20bd700e59a3;
+ *((unsigned long *)&__m256d_result[0]) = 0x6066a09e66c5f1bb;
+ __m256d_out = __lasx_xvfrsqrt_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256d_op0[2]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256d_op0[1]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256d_result[2]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256d_result[1]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xaf0489001bd4c0c3;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xaf0489001bd4c0c3;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000fffff614;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000fffff614;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000001e0000001e;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000001e0000001e;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000001e0000001e;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001e0000001e;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff80000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x8060000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x8060000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_result[0]) = 0x7ff0000000000000;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_result[0]) = 0xffffffffffffffff;
+ __m256d_out = __lasx_xvfrecip_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256d_result, __m256d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c
new file mode 100644
index 0000000..27df4a2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c
@@ -0,0 +1,457 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x00000000;
+ *((int *)&__m256_result[6]) = 0x00000000;
+ *((int *)&__m256_result[5]) = 0x00000000;
+ *((int *)&__m256_result[4]) = 0x00000000;
+ *((int *)&__m256_result[3]) = 0x00000000;
+ *((int *)&__m256_result[2]) = 0x00000000;
+ *((int *)&__m256_result[1]) = 0x00000000;
+ *((int *)&__m256_result[0]) = 0x00000000;
+ __m256_out = __lasx_xvfsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000ff80;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ffff;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x60b53246;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x60b5054d;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x0060005a;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x0060005a;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0x5f13ccf5;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0x5f13ccf5;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000002;
+ *((int *)&__m256_op0[4]) = 0x00000008;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000002;
+ *((int *)&__m256_op0[0]) = 0x00000008;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x64800000;
+ *((int *)&__m256_result[4]) = 0x64000000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x64800000;
+ *((int *)&__m256_result[0]) = 0x64000000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x000000bd;
+ *((int *)&__m256_op0[4]) = 0xfef907bc;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x000000bd;
+ *((int *)&__m256_op0[0]) = 0xfef907bc;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x62d2acee;
+ *((int *)&__m256_result[4]) = 0x7fc00000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x62d2acee;
+ *((int *)&__m256_result[0]) = 0x7fc00000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x04e8296f;
+ *((int *)&__m256_op0[6]) = 0x18181818;
+ *((int *)&__m256_op0[5]) = 0x132feea9;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x04e8296f;
+ *((int *)&__m256_op0[2]) = 0x18181818;
+ *((int *)&__m256_op0[1]) = 0x132feea9;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x5cbe15f2;
+ *((int *)&__m256_result[6]) = 0x53261036;
+ *((int *)&__m256_result[5]) = 0x559a674d;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x5cbe15f2;
+ *((int *)&__m256_result[2]) = 0x53261036;
+ *((int *)&__m256_result[1]) = 0x559a674d;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrsqrt_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x000000ff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000ff00;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((int *)&__m256_result[7]) = 0xffffffff;
+ *((int *)&__m256_result[6]) = 0xffffffff;
+ *((int *)&__m256_result[5]) = 0xffffffff;
+ *((int *)&__m256_result[4]) = 0xffffffff;
+ *((int *)&__m256_result[3]) = 0xffffffff;
+ *((int *)&__m256_result[2]) = 0xffffffff;
+ *((int *)&__m256_result[1]) = 0xffffffff;
+ *((int *)&__m256_result[0]) = 0xffffffff;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xfc003802;
+ *((int *)&__m256_op0[6]) = 0xfc000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xfc00fc00;
+ *((int *)&__m256_op0[3]) = 0xfc003802;
+ *((int *)&__m256_op0[2]) = 0xfc000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xfc00fc00;
+ *((int *)&__m256_result[7]) = 0x82ff902d;
+ *((int *)&__m256_result[6]) = 0x83000000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x82fe0bd9;
+ *((int *)&__m256_result[3]) = 0x82ff902d;
+ *((int *)&__m256_result[2]) = 0x83000000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x82fe0bd9;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((int *)&__m256_result[7]) = 0x7f800000;
+ *((int *)&__m256_result[6]) = 0x7f800000;
+ *((int *)&__m256_result[5]) = 0x7f800000;
+ *((int *)&__m256_result[4]) = 0x7f800000;
+ *((int *)&__m256_result[3]) = 0x7f800000;
+ *((int *)&__m256_result[2]) = 0x7f800000;
+ *((int *)&__m256_result[1]) = 0x7f800000;
+ *((int *)&__m256_result[0]) = 0x7f800000;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ *((int *)&__m256_op0[7]) = 0xfd02fd02;
+ *((int *)&__m256_op0[6]) = 0xfd02fd02;
+ *((int *)&__m256_op0[5]) = 0xfd02fd02;
+ *((int *)&__m256_op0[4]) = 0xfd02fd02;
+ *((int *)&__m256_op0[3]) = 0xfd02fd02;
+ *((int *)&__m256_op0[2]) = 0xfd02fd02;
+ *((int *)&__m256_op0[1]) = 0xfd02fd02;
+ *((int *)&__m256_op0[0]) = 0xfd02fd02;
+ *((int *)&__m256_result[7]) = 0x81fa28e4;
+ *((int *)&__m256_result[6]) = 0x81fa28e4;
+ *((int *)&__m256_result[5]) = 0x81fa28e4;
+ *((int *)&__m256_result[4]) = 0x81fa28e4;
+ *((int *)&__m256_result[3]) = 0x81fa28e4;
+ *((int *)&__m256_result[2]) = 0x81fa28e4;
+ *((int *)&__m256_result[1]) = 0x81fa28e4;
+ *((int *)&__m256_result[0]) = 0x81fa28e4;
+ __m256_out = __lasx_xvfrecip_s (__m256_op0);
+ ASSERTEQ_32 (__LINE__, __m256_result, __m256_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c
new file mode 100644
index 0000000..c75468d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c
@@ -0,0 +1,471 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffcb423a587053;
+ *((unsigned long *)&__m256d_op0[2]) = 0x6d46f43e71141b81;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffcb423a584528;
+ *((unsigned long *)&__m256d_op0[0]) = 0x9bdf36c8d78158a1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x43f0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffc03b1fc5e050;
+ *((unsigned long *)&__m256d_op0[2]) = 0x6a9e3fa2603a2000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffc03b1fc5e050;
+ *((unsigned long *)&__m256d_op0[0]) = 0x6a9e3fa2603a2000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000100000001;
+ *((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_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m256d_op0[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_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000001c9880;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000001c9880;
+ *((unsigned long *)&__m256d_op0[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_xvftintrm_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x1828f0e09bad7249;
+ *((unsigned long *)&__m256d_op0[2]) = 0x07ffc1b723953cec;
+ *((unsigned long *)&__m256d_op0[1]) = 0x61f2e9b333aab104;
+ *((unsigned long *)&__m256d_op0[0]) = 0x6bf742aa0d7856a0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00ffffff1e9e9e9e;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffff9e9eb09e;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00ffffff1e9e9e9e;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffff9e9eb09e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_l_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c
new file mode 100644
index 0000000..ad72f75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c
@@ -0,0 +1,1565 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x0000ffff;
+ *((int *)&__m256_op0[6]) = 0xc0008001;
+ *((int *)&__m256_op0[5]) = 0x0000ffff;
+ *((int *)&__m256_op0[4]) = 0xc0008001;
+ *((int *)&__m256_op0[3]) = 0x0000ffff;
+ *((int *)&__m256_op0[2]) = 0xc0008001;
+ *((int *)&__m256_op0[1]) = 0x0000ffff;
+ *((int *)&__m256_op0[0]) = 0xc0008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffffe;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x3f3f3f3c;
+ *((int *)&__m256_op0[5]) = 0xc6c6c6c6;
+ *((int *)&__m256_op0[4]) = 0x8787878a;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x3f3f3f3c;
+ *((int *)&__m256_op0[1]) = 0x8787878a;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff9c9d00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x1f0fdf7f;
+ *((int *)&__m256_op0[6]) = 0x3e3b31d4;
+ *((int *)&__m256_op0[5]) = 0x7ff80000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x1f0fdf7f;
+ *((int *)&__m256_op0[2]) = 0x3e3b31d4;
+ *((int *)&__m256_op0[1]) = 0x7ff80000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000200000003;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0080000200000003;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x55555555;
+ *((int *)&__m256_op0[5]) = 0x00000001;
+ *((int *)&__m256_op0[4]) = 0x00000004;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x55555555;
+ *((int *)&__m256_op0[1]) = 0x00000001;
+ *((int *)&__m256_op0[0]) = 0x00000004;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00ff00ffff0000ff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00ff00ffff0000ff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fe363637fe36364;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fe363637fe36364;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256d_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_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000020000000b;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000020000000a;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000000000000000a;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000000000000000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000505;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x40000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x40000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256d_op1[2]) = 0x4df5b1a3ed5e02c1;
+ *((unsigned long *)&__m256d_op1[1]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256d_op1[0]) = 0x4df5b1a3ed5e02c1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000004040104;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffd1108199;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000714910f9;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000030000000c;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000001100000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000500000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000800000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffff7e;
+ *((int *)&__m256_op0[4]) = 0xffffff46;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffff7e;
+ *((int *)&__m256_op0[0]) = 0xffffff46;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256d_op1[0]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m256d_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0fffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x0fffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x0fffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x0fffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256d_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_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfd12fd12;
+ *((int *)&__m256_op0[6]) = 0xfd12fd12;
+ *((int *)&__m256_op0[5]) = 0xfd12fd12;
+ *((int *)&__m256_op0[4]) = 0xfd12fd12;
+ *((int *)&__m256_op0[3]) = 0xfd12fd12;
+ *((int *)&__m256_op0[2]) = 0xfd12fd12;
+ *((int *)&__m256_op0[1]) = 0xfd12fd12;
+ *((int *)&__m256_op0[0]) = 0xfd12fd12;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvftintrne_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256d_op1[2]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256d_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256d_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrne_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffe4ffe6;
+ *((int *)&__m256_op0[6]) = 0xffe5ffe6;
+ *((int *)&__m256_op0[5]) = 0xffe4ffe6;
+ *((int *)&__m256_op0[4]) = 0xffe5ffe6;
+ *((int *)&__m256_op0[3]) = 0xffe4ffe6;
+ *((int *)&__m256_op0[2]) = 0xffe5ffe6;
+ *((int *)&__m256_op0[1]) = 0xffe4ffe6;
+ *((int *)&__m256_op0[0]) = 0xffe5ffe6;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000001;
+ *((int *)&__m256_op0[4]) = 0x00010102;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x80008000;
+ *((int *)&__m256_op0[6]) = 0x80008000;
+ *((int *)&__m256_op0[5]) = 0x80008000;
+ *((int *)&__m256_op0[4]) = 0x80008000;
+ *((int *)&__m256_op0[3]) = 0x80008000;
+ *((int *)&__m256_op0[2]) = 0x80008000;
+ *((int *)&__m256_op0[1]) = 0x80008000;
+ *((int *)&__m256_op0[0]) = 0x80008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x10000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x10000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x00ff00ff;
+ *((int *)&__m256_op0[3]) = 0x00ff00ff;
+ *((int *)&__m256_op0[2]) = 0x00ff00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x00ff00ff;
+ *((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_xvftintrp_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0010001000100010;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0010001000107878;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0010001000107878;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0040000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0040000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0040000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0040000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00003fea00013fec;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00003fe50001c013;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00003fea00013fec;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00003fe50001c013;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000180000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000180000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvftintrp_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffff000000010000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000095120000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xc9da000063f50000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xc7387fff6bbfffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x4001000100020000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffefffe;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xfffefffe;
+ *((int *)&__m256_op0[2]) = 0xfffefffd;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x0707feb6;
+ *((int *)&__m256_op0[6]) = 0x0707b7d0;
+ *((int *)&__m256_op0[5]) = 0x45baa7ef;
+ *((int *)&__m256_op0[4]) = 0x6a95a985;
+ *((int *)&__m256_op0[3]) = 0x0707feb6;
+ *((int *)&__m256_op0[2]) = 0x0707b7d0;
+ *((int *)&__m256_op0[1]) = 0x45baa7ef;
+ *((int *)&__m256_op0[0]) = 0x6a95a985;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000017547fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000017547fffffff;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[6]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[5]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[4]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[3]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[2]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[1]) = 0x6d6d6d6d;
+ *((int *)&__m256_op0[0]) = 0x6d6d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256d_op0[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256d_op1[2]) = 0x21f8c3c4c0000005;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256d_op1[0]) = 0x21f8c3c4c0000005;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256d_op1[2]) = 0x8000000100000001;
+ *((unsigned long *)&__m256d_op1[1]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256d_op1[0]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_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_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfff10000;
+ *((int *)&__m256_op0[4]) = 0xfff10000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfff10000;
+ *((int *)&__m256_op0[0]) = 0xfff10000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xfdfcfda8;
+ *((int *)&__m256_op0[5]) = 0x0000e282;
+ *((int *)&__m256_op0[4]) = 0x1d20ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xfdfcfda8;
+ *((int *)&__m256_op0[1]) = 0x0000e282;
+ *((int *)&__m256_op0[0]) = 0x1d20ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0080000000800000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0080000000800000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0080000000800000;
+ *((unsigned long *)&__m256d_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_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256d_op0[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256d_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256d_op0[0]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256d_op1[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256d_op1[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256d_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256d_op1[0]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000ffff0002fffc;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffff0000fffd0003;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff0002fffc;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffff0000fffd0003;
+ *((unsigned long *)&__m256d_op1[3]) = 0x003f020001400200;
+ *((unsigned long *)&__m256d_op1[2]) = 0x003f00ff003f00c4;
+ *((unsigned long *)&__m256d_op1[1]) = 0x003f020001400200;
+ *((unsigned long *)&__m256d_op1[0]) = 0x003f00ff003f00c4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrm_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfffffff0ffff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xfffffff0ffff0000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[2]) = 0x3ff1808001020101;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256d_op1[0]) = 0x3ff1808001020101;
+ *((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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x002e2100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x34000000fff00000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xfff6e00000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x3380000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x363c0000fff3c000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x000000030000000c;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000001100000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000500000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0000000800000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0xa5a5a5a5a5a5a5a5;
+ *((unsigned long *)&__m256d_op1[2]) = 0xa5a5a5a5a5a5a5ff;
+ *((unsigned long *)&__m256d_op1[1]) = 0xa5a5a5a5a5a5a5a5;
+ *((unsigned long *)&__m256d_op1[0]) = 0xa5a5a5a5a5a5a5ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x55555555;
+ *((int *)&__m256_op0[6]) = 0x55555555;
+ *((int *)&__m256_op0[5]) = 0x5d5d5d5d;
+ *((int *)&__m256_op0[4]) = 0x5d555d55;
+ *((int *)&__m256_op0[3]) = 0x55555555;
+ *((int *)&__m256_op0[2]) = 0x55555555;
+ *((int *)&__m256_op0[1]) = 0x5d5ca2a3;
+ *((int *)&__m256_op0[0]) = 0x5d54aaab;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0b085bfc00000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0b004bc000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0b085bfc00000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x0b004bc000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0xffeeffaf;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000011;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0xffeeffaf;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000011;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x00ff00ff;
+ *((int *)&__m256_op0[3]) = 0x00ff00ff;
+ *((int *)&__m256_op0[2]) = 0x00ff00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x001d001d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256d_op0[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256d_op0[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256d_op0[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_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_xvftintrz_w_d (__m256d_op0, __m256d_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x81fa28e4;
+ *((int *)&__m256_op0[6]) = 0x81fa28e4;
+ *((int *)&__m256_op0[5]) = 0x81fa28e4;
+ *((int *)&__m256_op0[4]) = 0x81fa28e4;
+ *((int *)&__m256_op0[3]) = 0x81fa28e4;
+ *((int *)&__m256_op0[2]) = 0x81fa28e4;
+ *((int *)&__m256_op0[1]) = 0x81fa28e4;
+ *((int *)&__m256_op0[0]) = 0x81fa28e4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_w_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c
new file mode 100644
index 0000000..19db4e1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c
@@ -0,0 +1,511 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffefffe;
+ *((int *)&__m256_op0[6]) = 0xfffefffe;
+ *((int *)&__m256_op0[5]) = 0xfffefffe;
+ *((int *)&__m256_op0[4]) = 0xfffefffe;
+ *((int *)&__m256_op0[3]) = 0xfffefffe;
+ *((int *)&__m256_op0[2]) = 0xfffefffe;
+ *((int *)&__m256_op0[1]) = 0xfffefffe;
+ *((int *)&__m256_op0[0]) = 0xfffefffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000200;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000200;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000200;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000200;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffffff1;
+ *((int *)&__m256_op0[6]) = 0xfffffff1;
+ *((int *)&__m256_op0[5]) = 0xfffffff1;
+ *((int *)&__m256_op0[4]) = 0xfffffff1;
+ *((int *)&__m256_op0[3]) = 0xfffffff1;
+ *((int *)&__m256_op0[2]) = 0xfffffff1;
+ *((int *)&__m256_op0[1]) = 0xfffffff1;
+ *((int *)&__m256_op0[0]) = 0xfffffff1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x43ef8787;
+ *((int *)&__m256_op0[4]) = 0x8000ffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x43ef8787;
+ *((int *)&__m256_op0[0]) = 0x8000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000001df00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000001df00000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0x00030005;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0x00030005;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7ff80000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x7ff80000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x7ff80000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x7ff80000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000002;
+ *((int *)&__m256_op0[6]) = 0x00000002;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000002;
+ *((int *)&__m256_op0[2]) = 0x00000002;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7ff00000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x7ff00000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x7ff00000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x7ff00000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00016e00;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00016e00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_wu_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftint_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x38a966b301f41ffd;
+ *((unsigned long *)&__m256d_op0[2]) = 0x5f6108ee13ff0000;
+ *((unsigned long *)&__m256d_op0[1]) = 0xf41a56e8d10201f6;
+ *((unsigned long *)&__m256d_op0[0]) = 0x683b8b34f1020001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256d_op0[2]) = 0xc2c2c2c2c2c29cc0;
+ *((unsigned long *)&__m256d_op0[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256d_op0[0]) = 0xc2c2c2c2c2c29cc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x00000000007a00f8;
+ *((unsigned long *)&__m256d_op0[2]) = 0x00ff00ff01640092;
+ *((unsigned long *)&__m256d_op0[1]) = 0x00000000007a00f8;
+ *((unsigned long *)&__m256d_op0[0]) = 0x00ff00ff01640092;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000000007fff80fe;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000007fff80fe;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000ffff80007ffe;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000ff007fff80fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op0[1]) = 0x000408080c111414;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256d_op0[3]) = 0x0000000008e8c000;
+ *((unsigned long *)&__m256d_op0[2]) = 0x000000000fffc000;
+ *((unsigned long *)&__m256d_op0[1]) = 0x0000000008e8c000;
+ *((unsigned long *)&__m256d_op0[0]) = 0x000000000fffc000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrz_lu_d (__m256d_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftintl.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftintl.c
new file mode 100644
index 0000000..b0fdf7e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvftintl.c
@@ -0,0 +1,1580 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m256_op0[7]) = 0xc58a0a0a;
+ *((int *)&__m256_op0[6]) = 0x07070706;
+ *((int *)&__m256_op0[5]) = 0x006b60e4;
+ *((int *)&__m256_op0[4]) = 0x180b0023;
+ *((int *)&__m256_op0[3]) = 0x1b39153f;
+ *((int *)&__m256_op0[2]) = 0x334b966a;
+ *((int *)&__m256_op0[1]) = 0xf1d75d79;
+ *((int *)&__m256_op0[0]) = 0xefcac002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x40404040;
+ *((int *)&__m256_op0[6]) = 0x40404040;
+ *((int *)&__m256_op0[5]) = 0x40404040;
+ *((int *)&__m256_op0[4]) = 0x40404040;
+ *((int *)&__m256_op0[3]) = 0x40404040;
+ *((int *)&__m256_op0[2]) = 0x40404040;
+ *((int *)&__m256_op0[1]) = 0x40404040;
+ *((int *)&__m256_op0[0]) = 0x40404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00080000;
+ *((int *)&__m256_op0[4]) = 0x00000010;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00080000;
+ *((int *)&__m256_op0[0]) = 0x00000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x40f69fe6;
+ *((int *)&__m256_op0[6]) = 0x3c26f4f5;
+ *((int *)&__m256_op0[5]) = 0x7ff7ffff;
+ *((int *)&__m256_op0[4]) = 0x00000007;
+ *((int *)&__m256_op0[3]) = 0x40f69fe6;
+ *((int *)&__m256_op0[2]) = 0x3c26f4f5;
+ *((int *)&__m256_op0[1]) = 0x7ff7ffff;
+ *((int *)&__m256_op0[0]) = 0x00000007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00060000;
+ *((int *)&__m256_op0[6]) = 0x00040000;
+ *((int *)&__m256_op0[5]) = 0x00020000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00060000;
+ *((int *)&__m256_op0[2]) = 0x00040000;
+ *((int *)&__m256_op0[1]) = 0x00020000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffff0000;
+ *((int *)&__m256_op0[4]) = 0xffff0000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffff0000;
+ *((int *)&__m256_op0[0]) = 0xffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x55550000;
+ *((int *)&__m256_op0[6]) = 0x55550000;
+ *((int *)&__m256_op0[5]) = 0x55550000;
+ *((int *)&__m256_op0[4]) = 0x55550000;
+ *((int *)&__m256_op0[3]) = 0x55550000;
+ *((int *)&__m256_op0[2]) = 0x55550000;
+ *((int *)&__m256_op0[1]) = 0x55550000;
+ *((int *)&__m256_op0[0]) = 0x55550000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000d5000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000d5000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000d5000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000d5000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x007f8080;
+ *((int *)&__m256_op0[6]) = 0x007f007f;
+ *((int *)&__m256_op0[5]) = 0x007f8080;
+ *((int *)&__m256_op0[4]) = 0x007f007f;
+ *((int *)&__m256_op0[3]) = 0x007f8080;
+ *((int *)&__m256_op0[2]) = 0x007f007f;
+ *((int *)&__m256_op0[1]) = 0x007f8080;
+ *((int *)&__m256_op0[0]) = 0x007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x08e8c000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0fffc000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x08e8c000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0fffc000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftinth_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000002;
+ *((int *)&__m256_op0[4]) = 0x00000008;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000002;
+ *((int *)&__m256_op0[0]) = 0x00000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7f1d7f7f;
+ *((int *)&__m256_op0[6]) = 0x7f1d7f3b;
+ *((int *)&__m256_op0[5]) = 0x02020102;
+ *((int *)&__m256_op0[4]) = 0x02020102;
+ *((int *)&__m256_op0[3]) = 0x7f1d7f7f;
+ *((int *)&__m256_op0[2]) = 0x7f1d7f3b;
+ *((int *)&__m256_op0[1]) = 0x02020102;
+ *((int *)&__m256_op0[0]) = 0x02020102;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrnel_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000102;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x39ffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x39ffffff;
+ *((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_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x80000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x80000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x80000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x80000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x000055ff;
+ *((int *)&__m256_op0[6]) = 0x01f90ab5;
+ *((int *)&__m256_op0[5]) = 0xaa95eaff;
+ *((int *)&__m256_op0[4]) = 0xfec6e01f;
+ *((int *)&__m256_op0[3]) = 0x000055ff;
+ *((int *)&__m256_op0[2]) = 0x01f90ab5;
+ *((int *)&__m256_op0[1]) = 0xaa95eaff;
+ *((int *)&__m256_op0[0]) = 0xfec6e01f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffeb683;
+ *((int *)&__m256_op0[6]) = 0x9ffffd80;
+ *((int *)&__m256_op0[5]) = 0xfffe97c0;
+ *((int *)&__m256_op0[4]) = 0x20010001;
+ *((int *)&__m256_op0[3]) = 0xfffeb683;
+ *((int *)&__m256_op0[2]) = 0x9ffffd80;
+ *((int *)&__m256_op0[1]) = 0xfffe97c0;
+ *((int *)&__m256_op0[0]) = 0x20010001;
+ *((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_xvftintrpl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x000000ff;
+ *((int *)&__m256_op0[6]) = 0x000000f8;
+ *((int *)&__m256_op0[5]) = 0xbc8ff0ff;
+ *((int *)&__m256_op0[4]) = 0xffffcff8;
+ *((int *)&__m256_op0[3]) = 0x000000ff;
+ *((int *)&__m256_op0[2]) = 0x000000f8;
+ *((int *)&__m256_op0[1]) = 0xbc8ff0ff;
+ *((int *)&__m256_op0[0]) = 0xffffcff8;
+ *((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_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000001;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000001;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000001;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x00000001;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7fe37fe3;
+ *((int *)&__m256_op0[6]) = 0x001d001d;
+ *((int *)&__m256_op0[5]) = 0x7fff7fff;
+ *((int *)&__m256_op0[4]) = 0x7fff0000;
+ *((int *)&__m256_op0[3]) = 0x7fe37fe3;
+ *((int *)&__m256_op0[2]) = 0x001d001d;
+ *((int *)&__m256_op0[1]) = 0x7fff7fff;
+ *((int *)&__m256_op0[0]) = 0x7fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000010;
+ *((int *)&__m256_op0[6]) = 0x00000010;
+ *((int *)&__m256_op0[5]) = 0x00000010;
+ *((int *)&__m256_op0[4]) = 0x00000010;
+ *((int *)&__m256_op0[3]) = 0x00000010;
+ *((int *)&__m256_op0[2]) = 0x00000010;
+ *((int *)&__m256_op0[1]) = 0x00000010;
+ *((int *)&__m256_op0[0]) = 0x00000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrml_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x8b141414;
+ *((int *)&__m256_op0[4]) = 0x0e0e0e0e;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x36722a7e;
+ *((int *)&__m256_op0[0]) = 0x66972cd6;
+ *((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_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x6a9e3f9a;
+ *((int *)&__m256_op0[4]) = 0x603a2001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x6a9e3f9a;
+ *((int *)&__m256_op0[0]) = 0x603a2001;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x0000fafe;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x0000fafe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzl_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00fffefe;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0xfffffffc;
+ *((int *)&__m256_op0[4]) = 0x5556aaa8;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0xfffffffc;
+ *((int *)&__m256_op0[0]) = 0x5556aaa8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffcc80;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x7dfdff4b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x002a5429;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x002a5429;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x77777777;
+ *((int *)&__m256_op0[6]) = 0xf7777777;
+ *((int *)&__m256_op0[5]) = 0xf7777777;
+ *((int *)&__m256_op0[4]) = 0x77777777;
+ *((int *)&__m256_op0[3]) = 0x77777777;
+ *((int *)&__m256_op0[2]) = 0xf7777777;
+ *((int *)&__m256_op0[1]) = 0xf7777777;
+ *((int *)&__m256_op0[0]) = 0x77777777;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000009;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000009;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000009;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x010c7fbc;
+ *((int *)&__m256_op0[6]) = 0x7e1c7e1c;
+ *((int *)&__m256_op0[5]) = 0xfe000000;
+ *((int *)&__m256_op0[4]) = 0x00000024;
+ *((int *)&__m256_op0[3]) = 0x010c7fbc;
+ *((int *)&__m256_op0[2]) = 0x7e1c7e1c;
+ *((int *)&__m256_op0[1]) = 0xfe000000;
+ *((int *)&__m256_op0[0]) = 0x00000024;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfffffe20;
+ *((int *)&__m256_op0[6]) = 0x001dfe1f;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xfffffe20;
+ *((int *)&__m256_op0[2]) = 0x001dfe1f;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffe1;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffe1;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffe1;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffe1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000040;
+ *((int *)&__m256_op0[6]) = 0x00000020;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000040;
+ *((int *)&__m256_op0[2]) = 0x00000020;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrneh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xfefefeff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xff295329;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xfefefeff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xff295329;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xff00ffff;
+ *((int *)&__m256_op0[6]) = 0xff00ffff;
+ *((int *)&__m256_op0[5]) = 0xff00ffff;
+ *((int *)&__m256_op0[4]) = 0xff00ffff;
+ *((int *)&__m256_op0[3]) = 0xff00ffff;
+ *((int *)&__m256_op0[2]) = 0xff00ffff;
+ *((int *)&__m256_op0[1]) = 0xff00ffff;
+ *((int *)&__m256_op0[0]) = 0xff00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x7fefffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x7fefffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x02020102;
+ *((int *)&__m256_op0[6]) = 0x02020102;
+ *((int *)&__m256_op0[5]) = 0x02020102;
+ *((int *)&__m256_op0[4]) = 0x02020102;
+ *((int *)&__m256_op0[3]) = 0x02020102;
+ *((int *)&__m256_op0[2]) = 0x02020102;
+ *((int *)&__m256_op0[1]) = 0x02020102;
+ *((int *)&__m256_op0[0]) = 0x02020102;
+ *((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_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000001;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000001;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((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_xvftintrph_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x515f93f0;
+ *((int *)&__m256_op0[6]) = 0x23600fb9;
+ *((int *)&__m256_op0[5]) = 0x948b39e0;
+ *((int *)&__m256_op0[4]) = 0xb7405f6f;
+ *((int *)&__m256_op0[3]) = 0x48ef0878;
+ *((int *)&__m256_op0[2]) = 0x00007c83;
+ *((int *)&__m256_op0[1]) = 0x78af877c;
+ *((int *)&__m256_op0[0]) = 0x7d7f86f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000df93f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000077843;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x17171717;
+ *((int *)&__m256_op0[6]) = 0x17171717;
+ *((int *)&__m256_op0[5]) = 0x000607f7;
+ *((int *)&__m256_op0[4]) = 0x00000001;
+ *((int *)&__m256_op0[3]) = 0x17171717;
+ *((int *)&__m256_op0[2]) = 0x17171717;
+ *((int *)&__m256_op0[1]) = 0x000607f7;
+ *((int *)&__m256_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00ff00ff;
+ *((int *)&__m256_op0[6]) = 0x00ff00ff;
+ *((int *)&__m256_op0[5]) = 0x00ff00ff;
+ *((int *)&__m256_op0[4]) = 0x017e01fe;
+ *((int *)&__m256_op0[3]) = 0x017e00ff;
+ *((int *)&__m256_op0[2]) = 0x017e00ff;
+ *((int *)&__m256_op0[1]) = 0x00ff00ff;
+ *((int *)&__m256_op0[0]) = 0x017e01fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xfefefefe;
+ *((int *)&__m256_op0[6]) = 0xfefefefe;
+ *((int *)&__m256_op0[5]) = 0xfe8bfe0e;
+ *((int *)&__m256_op0[4]) = 0xfe8bfe12;
+ *((int *)&__m256_op0[3]) = 0xfefefefe;
+ *((int *)&__m256_op0[2]) = 0xfefefefe;
+ *((int *)&__m256_op0[1]) = 0xfe8bfe0e;
+ *((int *)&__m256_op0[0]) = 0xfe8bfe12;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x71717171;
+ *((int *)&__m256_op0[6]) = 0x71010101;
+ *((int *)&__m256_op0[5]) = 0x8e8e8e8e;
+ *((int *)&__m256_op0[4]) = 0x8f00ffff;
+ *((int *)&__m256_op0[3]) = 0x71717171;
+ *((int *)&__m256_op0[2]) = 0x71010101;
+ *((int *)&__m256_op0[1]) = 0x8e8e8e8e;
+ *((int *)&__m256_op0[0]) = 0x8f00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00060000;
+ *((int *)&__m256_op0[6]) = 0x00040000;
+ *((int *)&__m256_op0[5]) = 0x00020000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00060000;
+ *((int *)&__m256_op0[2]) = 0x00040000;
+ *((int *)&__m256_op0[1]) = 0x00020000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xff1cff1c;
+ *((int *)&__m256_op0[6]) = 0xff1cff1c;
+ *((int *)&__m256_op0[5]) = 0xff1cff1c;
+ *((int *)&__m256_op0[4]) = 0xff1cff1c;
+ *((int *)&__m256_op0[3]) = 0xff1cff1c;
+ *((int *)&__m256_op0[2]) = 0xff1cff1c;
+ *((int *)&__m256_op0[1]) = 0xff1cff1c;
+ *((int *)&__m256_op0[0]) = 0xff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x000fffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x000fffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrmh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00002262;
+ *((int *)&__m256_op0[6]) = 0x00005111;
+ *((int *)&__m256_op0[5]) = 0x0000165e;
+ *((int *)&__m256_op0[4]) = 0x0000480d;
+ *((int *)&__m256_op0[3]) = 0x00002262;
+ *((int *)&__m256_op0[2]) = 0x00005111;
+ *((int *)&__m256_op0[1]) = 0x0000165e;
+ *((int *)&__m256_op0[0]) = 0x0000480d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0xffffffff;
+ *((int *)&__m256_op0[6]) = 0xffffffff;
+ *((int *)&__m256_op0[5]) = 0xffffffff;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0xffffffff;
+ *((int *)&__m256_op0[2]) = 0xffffffff;
+ *((int *)&__m256_op0[1]) = 0xffffffff;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0xffffffff;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00000000;
+ *((int *)&__m256_op0[6]) = 0x00000000;
+ *((int *)&__m256_op0[5]) = 0x00000000;
+ *((int *)&__m256_op0[4]) = 0x00000000;
+ *((int *)&__m256_op0[3]) = 0x00000000;
+ *((int *)&__m256_op0[2]) = 0x00000000;
+ *((int *)&__m256_op0[1]) = 0x00000000;
+ *((int *)&__m256_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((int *)&__m256_op0[7]) = 0x00040004;
+ *((int *)&__m256_op0[6]) = 0x00040004;
+ *((int *)&__m256_op0[5]) = 0x00040005;
+ *((int *)&__m256_op0[4]) = 0x00040005;
+ *((int *)&__m256_op0[3]) = 0x00040004;
+ *((int *)&__m256_op0[2]) = 0x00040004;
+ *((int *)&__m256_op0[1]) = 0x00040005;
+ *((int *)&__m256_op0[0]) = 0x00040005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvftintrzh_l_s (__m256_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c
new file mode 100644
index 0000000..1cf0ec6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c
@@ -0,0 +1,560 @@
+/* { 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]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbffffffffffffeff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbffffffffffffeff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff6fffefffe005b;
+ *((unsigned long *)&__m256i_result[2]) = 0xffbefffefffe005a;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff6fffefffe005b;
+ *((unsigned long *)&__m256i_result[0]) = 0xffbefffefffe005a;
+ __m256i_out = __lasx_xvhaddw_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]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000000000000;
+ __m256i_out = __lasx_xvhaddw_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]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhaddw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffffffefffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffffffefffe;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000023;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000023;
+ __m256i_out = __lasx_xvhaddw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_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_xvhaddw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff8fffffff8ffff;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff6fff6fff6fff6;
+ *((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]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffecffffffec;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffefffffffe;
+ __m256i_out = __lasx_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffc000400780087;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fe80fffc0183;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffc000400f8ff87;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff80ff00ff7c0183;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffff900000800;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffc00000078;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffc000000f8;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff790000077c;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_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_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007ff000000000;
+ __m256i_out = __lasx_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff1fffffff1;
+ __m256i_out = __lasx_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000001ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001ffff;
+ *((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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhaddw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvhaddw_w_h (__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]) = 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_xvhaddw_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_xvhaddw_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f6ff00000000;
+ *((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]) = 0x000000000000f6ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000f6ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhaddw_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000017f0000017f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000017f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000017f;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_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_xvhaddw_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_xvhaddw_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000017000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000017000000080;
+ *((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]) = 0x0000017000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000017000000080;
+ __m256i_out = __lasx_xvhaddw_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]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff000000000000;
+ __m256i_out = __lasx_xvhaddw_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_xvhaddw_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_xvhaddw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff0000000000000;
+ __m256i_out = __lasx_xvhaddw_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvhaddw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_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_xvhaddw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_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_xvhaddw_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000400010004;
+ __m256i_out = __lasx_xvhaddw_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]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffffffffff;
+ __m256i_out = __lasx_xvhaddw_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-xvhaddw-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c
new file mode 100644
index 0000000..14ec081
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c
@@ -0,0 +1,650 @@
+/* { 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]) = 0x0000015d050192cb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x028e509508b16ee9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000033ff01020e23;
+ *((unsigned long *)&__m256i_op0[0]) = 0x151196b58fd1114d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001ffaa0000040e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000716800007bb6;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001ffe80001fe9c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000228200001680;
+ *((unsigned long *)&__m256i_result[3]) = 0x000100ab000500a0;
+ *((unsigned long *)&__m256i_result[2]) = 0x000200b800080124;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001011b000200aa;
+ *((unsigned long *)&__m256i_result[0]) = 0x00150118008f0091;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001341c4000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000310000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007f00340040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f000000ff;
+ __m256i_out = __lasx_xvhaddw_hu_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]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01ae00ff00ff;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_result[2]) = 0x007c000000810081;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_result[0]) = 0x007c000000810081;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffc0003fffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffc0003fffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x007fc0083fc7c007;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007fc0083fc7c007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f010700c70106;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f010700c70106;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e0010000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e0010000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101000101010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000101010001;
+ *((unsigned long *)&__m256i_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]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000000010000;
+ __m256i_out = __lasx_xvhaddw_hu_bu (__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]) = 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_xvhaddw_hu_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvhaddw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000002a5;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000002a5;
+ __m256i_out = __lasx_xvhaddw_wu_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_xvhaddw_wu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvhaddw_wu_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_xvhaddw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0e0e0e0e0e0e0e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000e0e0e0e0e0e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff8fff9000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff8fff9000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff8fff9000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00010e0d00009e0e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00009000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000e0e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00009000;
+ __m256i_out = __lasx_xvhaddw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_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_xvhaddw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000300000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000300000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000300000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000300000004;
+ __m256i_out = __lasx_xvhaddw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0501030102141923;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffd5020738b43ddb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x010200023b8e4174;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff4ff4e11410b40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf259905a09c23be0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6d3c2d3a89167aeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000501e99b;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000109973de7;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001020f22;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001890b7a39;
+ __m256i_out = __lasx_xvhaddw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007f000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff0000;
+ __m256i_out = __lasx_xvhaddw_du_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_xvhaddw_du_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]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff90000fff9fff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff90000fff9fff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001fff9fff8;
+ __m256i_out = __lasx_xvhaddw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffff81ffffeb2f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f6ee0570b4e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000018de;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffb4ffcec0f1;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffff81ffffeb2f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f6ee0570b4e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000018de;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffb4ffcec0f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001ffffeab0;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000e0574abc;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000018de;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001ffcec0a5;
+ __m256i_out = __lasx_xvhaddw_du_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]) = 0xffe367cc82f8989a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4f90000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffc3aaa8d58f43c8;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000082f8989a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000d58f43c8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhaddw_du_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]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000170017;
+ __m256i_out = __lasx_xvhaddw_du_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_xvhaddw_du_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]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004411;
+ __m256i_out = __lasx_xvhaddw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000175e0000490d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000175e0000490d;
+ *((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]) = 0x0000000000002362;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000175d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000002362;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000175d;
+ __m256i_out = __lasx_xvhaddw_du_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_xvhaddw_du_wu (__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]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000ff00;
+ __m256i_out = __lasx_xvhaddw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100003ffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100003fcd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100003ffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100003fcd;
+ __m256i_out = __lasx_xvhaddw_du_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_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffefefffffefe;
+ *((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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefefffffefe;
+ __m256i_out = __lasx_xvhaddw_qu_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_xvhaddw_qu_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_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000003f;
+ __m256i_out = __lasx_xvhaddw_qu_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]) = 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]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x9090909090909090;
+ __m256i_out = __lasx_xvhaddw_qu_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]) = 0x000000000000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000f;
+ __m256i_out = __lasx_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xf3f3f3f3f3f3f4f3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf3f3f3f3f3f3f4f3;
+ __m256i_out = __lasx_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000800080008000;
+ __m256i_out = __lasx_xvhaddw_qu_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_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000001ce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000001fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000001ce;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000001fd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001fd;
+ __m256i_out = __lasx_xvhaddw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfd12fd12fd12fd12;
+ *((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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfa15fa15fa15fa14;
+ __m256i_out = __lasx_xvhaddw_qu_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-xvhsubw-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.c
new file mode 100644
index 0000000..fa4d5fd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.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]) = 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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvhsubw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000fffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000fffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_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]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffb80000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffb80000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_h_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]) = 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_xvhsubw_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]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvhsubw_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]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000007fee;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000012;
+ __m256i_out = __lasx_xvhsubw_h_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvhsubw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000f0f0003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000f1003;
+ *((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]) = 0x00000000000f0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000011;
+ __m256i_out = __lasx_xvhsubw_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe000ffffffff08;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe000ffffffff08;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001fffffff9;
+ __m256i_out = __lasx_xvhsubw_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100002000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvhsubw_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00b7003600120000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00b7006200fc0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00b7004100190004;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9a7f997fff01ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbe632a4f1c3c5653;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffe54affffffd3;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffcfae000000d8;
+ *((unsigned long *)&__m256i_result[1]) = 0x00006681000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffd668ffffa9c6;
+ __m256i_out = __lasx_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff00000bff00000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff00000bff00000;
+ *((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]) = 0xffffbff1ffffbff1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffbff1ffffbff1;
+ __m256i_out = __lasx_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff1fffffff1;
+ __m256i_out = __lasx_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000051;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000101000000fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000051;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000101000000fff;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x817f11ed81800ff0;
+ *((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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8180ffff8181;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8180ffff8181;
+ __m256i_out = __lasx_xvhsubw_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvhsubw_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ffffffffffffff;
+ *((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_xvhsubw_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_xvhsubw_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_xvhsubw_d_w (__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]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffd017d00;
+ __m256i_out = __lasx_xvhsubw_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]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffe;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_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_xvhsubw_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_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]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffe00;
+ __m256i_out = __lasx_xvhsubw_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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_d_w (__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]) = 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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvhsubw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffc0c0ffffbfc0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffc0c0ffffbfc0;
+ __m256i_out = __lasx_xvhsubw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000010000000;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffeffff10000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeffff10000000;
+ __m256i_out = __lasx_xvhsubw_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0007a861;
+ __m256i_out = __lasx_xvhsubw_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_xvhsubw_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-xvhsubw-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c
new file mode 100644
index 0000000..87c3e25
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c
@@ -0,0 +1,545 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff70ff01ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff70ff01ff80;
+ __m256i_out = __lasx_xvhsubw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_result[2]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_result[1]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_result[0]) = 0x00c200c200c200bb;
+ __m256i_out = __lasx_xvhsubw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvhsubw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_hu_bu (__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]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff70;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff70;
+ __m256i_out = __lasx_xvhsubw_hu_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_hu_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff00bb;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0057;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ff00bb;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0057;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fffa003e;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffb009c;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffa003e;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffb009c;
+ __m256i_out = __lasx_xvhsubw_hu_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvhsubw_wu_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]) = 0x6300000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6300000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvhsubw_wu_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_xvhsubw_wu_hu (__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]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffc001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000c000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffc001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000c000;
+ __m256i_out = __lasx_xvhsubw_wu_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_xvhsubw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff9fffffff9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff9fffffff9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000018ffff2b13;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000018ffff2b13;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvhsubw_wu_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00800080ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00800080ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007fe268;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007fe268;
+ __m256i_out = __lasx_xvhsubw_du_wu (__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]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffbfffc;
+ __m256i_out = __lasx_xvhsubw_du_wu (__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]) = 0xffffff00fffffff0;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffff00;
+ __m256i_out = __lasx_xvhsubw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffefefeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffff295329;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff01010101;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00d6acd7;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff01010101;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00d6acd7;
+ __m256i_out = __lasx_xvhsubw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x120e120dedf1edf2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x120e120dedf1edf2;
+ *((unsigned long *)&__m256i_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]) = 0x00000000120e120d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000120e120d;
+ __m256i_out = __lasx_xvhsubw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000483800;
+ *((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_xvhsubw_du_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvhsubw_du_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_xvhsubw_du_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_xvhsubw_du_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]) = 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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvhsubw_du_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvhsubw_du_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]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff0000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000000d;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000000d;
+ __m256i_out = __lasx_xvhsubw_du_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_xvhsubw_du_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]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffb7ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00010000002fff9e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffb5ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0048007f002f0028;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x004a007f002f0028;
+ __m256i_out = __lasx_xvhsubw_qu_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_xvhsubw_qu_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_xvhsubw_qu_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]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x24342434ffff2435;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x24342434ffff2435;
+ __m256i_out = __lasx_xvhsubw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvhsubw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_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]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffba8300004fc2;
+ __m256i_out = __lasx_xvhsubw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvhsubw_qu_du (__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]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffebffffffebfff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffebffffffebfff;
+ __m256i_out = __lasx_xvhsubw_qu_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff7edfffff7edf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff7edfffff7edf;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff3eedffff3ee3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff3eedffff3ee3;
+ __m256i_out = __lasx_xvhsubw_qu_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-xvilvh.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvh.c
new file mode 100644
index 0000000..5a047a5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvh.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xbff0800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xbff0800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvh_h (__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]) = 0x00000000ffffffff;
+ *((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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvh_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]) = 0x0000000000000101;
+ *((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_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000307fffe72e800;
+ *((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_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020202020200008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0008010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000001010000;
+ __m256i_out = __lasx_xvilvh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5555555580000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5555555580000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x555555553f800000;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_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]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000003f00000000;
+ __m256i_out = __lasx_xvilvh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x419cd5b11c3c5654;
+ *((unsigned long *)&__m256i_op1[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x419cd5b11c3c5654;
+ *((unsigned long *)&__m256i_result[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[2]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_result[0]) = 0x6580668200fe0002;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000004000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000004000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff04ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff04ff00ff00ff00;
+ __m256i_out = __lasx_xvilvh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000003f00390035;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8015003f0006001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000003f00390035;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8015003f0006001f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x80000000001529c1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80007073cadc3779;
+ *((unsigned long *)&__m256i_op1[1]) = 0x80000000001529c1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80007073cadc3779;
+ *((unsigned long *)&__m256i_result[3]) = 0x00008000003f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00390015003529c1;
+ *((unsigned long *)&__m256i_result[1]) = 0x00008000003f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00390015003529c1;
+ __m256i_out = __lasx_xvilvh_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_xvilvh_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]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020002000200020;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvilvh_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]) = 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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvilvh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000002c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000002c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000002c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000002c;
+ *((unsigned long *)&__m256i_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]) = 0x00000000002c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000002c0000;
+ __m256i_out = __lasx_xvilvh_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_xvilvh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7eeefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7eeefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_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]) = 0x7e00ee00fe00fe00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfe00fe00fe00fe00;
+ *((unsigned long *)&__m256i_result[1]) = 0x7e00ee00fe00fe00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfe00fe00fe00fe00;
+ __m256i_out = __lasx_xvilvh_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvilvh_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvilvh_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_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xaad5555500000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xaad5555500000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001fff200007ef;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff7bfffff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff80007fe9;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff7bfffff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff80007fe9;
+ *((unsigned long *)&__m256i_result[3]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x407b40ff40ff40f1;
+ *((unsigned long *)&__m256i_result[1]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x407b40ff40ff40f1;
+ __m256i_out = __lasx_xvilvh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff02000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff02000000;
+ *((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_xvilvh_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_xvilvh_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]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvilvh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0001fffa;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe00018069;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0001fffa;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe00018069;
+ *((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]) = 0x00ff01fffffffeff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff01fffffffaff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff01fffffffeff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff01fffffffaff;
+ __m256i_out = __lasx_xvilvh_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_xvilvh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00001ff8d8d90000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00001ff8d8d90000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001ff800000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xd8d8c00000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001ff800000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xd8d8c00000000000;
+ __m256i_out = __lasx_xvilvh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080ff0080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080ff0080;
+ __m256i_out = __lasx_xvilvh_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]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000203ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000203ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001ff03ff;
+ __m256i_out = __lasx_xvilvh_w (__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]) = 0x000000019ffdf403;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000011ffd97c3;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000019ffdf403;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000011ffd97c3;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000019ffdf403;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000019ffdf403;
+ __m256i_out = __lasx_xvilvh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe0ffe000000000;
+ __m256i_out = __lasx_xvilvh_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvl.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvl.c
new file mode 100644
index 0000000..4393045
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvilvl.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]) = 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_xvilvl_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvilvl_d (__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]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvilvl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_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]) = 0xffff0000fffe0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000fefc0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000fffe0000;
+ __m256i_out = __lasx_xvilvl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefdfffffefd;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007f7f7f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f007f78;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f00007f7f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f00fffb7f78fffc;
+ __m256i_out = __lasx_xvilvl_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]) = 0x8080808080808081;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8080808080808081;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000808000008080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000808000008081;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe0001fffe;
+ *((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]) = 0x00ff01fffffffeff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff01fffffffeff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff01fffffffeff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff01fffffffeff;
+ __m256i_out = __lasx_xvilvl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvl_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]) = 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]) = 0x07efefefefefefee;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x07efefefefefefee;
+ __m256i_out = __lasx_xvilvl_d (__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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffffffffff;
+ __m256i_out = __lasx_xvilvl_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_xvilvl_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]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000005;
+ __m256i_out = __lasx_xvilvl_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_xvilvl_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_xvilvl_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]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00f300ff00f3;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00f300ff00f3;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00f300ff00f3;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00f300ff00f3;
+ __m256i_out = __lasx_xvilvl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvilvl_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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00040000;
+ __m256i_out = __lasx_xvilvl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00fe00fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00fe00fe;
+ __m256i_out = __lasx_xvilvl_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_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007c000000810081;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007c000000810081;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x007c7fff00007fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00817fff00810000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007c7fff00007fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00817fff00810000;
+ __m256i_out = __lasx_xvilvl_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]) = 0x00000000001d001d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001d0000001d;
+ __m256i_out = __lasx_xvilvl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000070007000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe070e000e070e000;
+ *((unsigned long *)&__m256i_result[2]) = 0xe070e000e070e000;
+ *((unsigned long *)&__m256i_result[1]) = 0xe070e000e070e000;
+ *((unsigned long *)&__m256i_result[0]) = 0xe070e000e070e000;
+ __m256i_out = __lasx_xvilvl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x003f003f003f0040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f00004040;
+ __m256i_out = __lasx_xvilvl_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvilvl_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]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffe98;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
+ __m256i_out = __lasx_xvilvl_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvl_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_xvilvl_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_xvilvl_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]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000e000e;
+ __m256i_out = __lasx_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_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]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_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]) = 0x00000a0080000b00;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000a0080000b00;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000a0080000b00;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000a0080000b00;
+ __m256i_out = __lasx_xvilvl_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_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe01fe01fd02fd02;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe01fe01fd02fd02;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_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]) = 0x3f00c0003f00c000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3f00c0003f00c000;
+ __m256i_out = __lasx_xvilvl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[0]) = 0x4980008068400000;
+ __m256i_out = __lasx_xvilvl_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]) = 0xf000f000f000f000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf000f010f000f010;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf000f000f000f000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf000f010f000f010;
+ *((unsigned long *)&__m256i_result[3]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff0ff00fff0ff10;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff0ff00fff0ff10;
+ __m256i_out = __lasx_xvilvl_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvilvl_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvilvl_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]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffed;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffed;
+ __m256i_out = __lasx_xvilvl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c
new file mode 100644
index 0000000..ce28c48
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c
@@ -0,0 +1,272 @@
+/* { 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]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x146014141414146e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf19998668e5f4b84;
+ long_op1 = 0x0000007942652524;
+ *((unsigned long *)&__m256i_result[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007942652524;
+ *((unsigned long *)&__m256i_result[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_result[0]) = 0xf19998668e5f4b84;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202020201010000;
+ int_op1 = 0x00000045eef14fe8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202020201010000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x012e2110012e2110;
+ int_op1 = 0x00000000000000ac;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000ac;
+ *((unsigned long *)&__m256i_result[0]) = 0x012e2110012e2110;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x0);
+ 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;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff800000ff800000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff80000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff0000ff;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff0000ff;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff383efffedf0c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff383efffedf0c;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff383e000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0xe800c000fffeeece;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff383efffedf0c;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0020000000200000;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000048;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000048;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff7fffffff7;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff700000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff7fffffff7;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_d (__m256i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ int_op1 = 0x00000000090b0906;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000090b0906;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x000000000000001e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001e00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000050005;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefefefefe;
+ __m256i_out = __lasx_xvinsgr2vr_w (__m256i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c
new file mode 100644
index 0000000..644d2ce
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c
@@ -0,0 +1,380 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000050005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000004fb;
+ *((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]) = 0x00000000000004fb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefe00000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvinsve0_d (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000170017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000170017;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvinsve0_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_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]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffefffffffe;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x001f00e0ff800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x001f00e0ff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff80000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000200000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[0]) = 0x9090909090909090;
+ *((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]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[0]) = 0x9090909090909090;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((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_xvinsve0_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007fff0000739c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007fff0000739c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000739c;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvinsve0_w (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op1[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op1[0]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_result[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x6040190d00000000;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000ffff0000ffff;
+ __m256i_out = __lasx_xvinsve0_d (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8001ffff0001;
+ __m256i_out = __lasx_xvinsve0_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c
new file mode 100644
index 0000000..c1eda6c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvld.c
@@ -0,0 +1,86 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_result[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_result[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ad152a5ad72feeb;
+ __m256i_out = __lasx_xvld ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_result[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_result[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ad152a5ad72feeb;
+ __m256i_out = __lasx_xvldx ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[2]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[0]) = 0xebebebebebebebeb;
+ __m256i_out = __lasx_xvldrepl_b ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0xfeebfeebfeebfeeb;
+ *((unsigned long *)&__m256i_result[2]) = 0xfeebfeebfeebfeeb;
+ *((unsigned long *)&__m256i_result[1]) = 0xfeebfeebfeebfeeb;
+ *((unsigned long *)&__m256i_result[0]) = 0xfeebfeebfeebfeeb;
+ __m256i_out = __lasx_xvldrepl_h ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0xad72feebad72feeb;
+ *((unsigned long *)&__m256i_result[2]) = 0xad72feebad72feeb;
+ *((unsigned long *)&__m256i_result[1]) = 0xad72feebad72feeb;
+ *((unsigned long *)&__m256i_result[0]) = 0xad72feebad72feeb;
+ __m256i_out = __lasx_xvldrepl_w ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[2]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ad152a5ad72feeb;
+ __m256i_out = __lasx_xvldrepl_d ((unsigned long *)&__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c
new file mode 100644
index 0000000..84b3c65
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldi.c
@@ -0,0 +1,83 @@
+/* { 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_result[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvldi (-4080);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0xfebcfebcfebcfebc;
+ *((unsigned long *)&__m256i_result[2]) = 0xfebcfebcfebcfebc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfebcfebcfebcfebc;
+ *((unsigned long *)&__m256i_result[0]) = 0xfebcfebcfebcfebc;
+ __m256i_out = __lasx_xvldi (1724);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fd1000000000000;
+ __m256i_out = __lasx_xvldi (-943);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
+ __m256i_out = __lasx_xvldi (1820);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7200000072000000;
+ __m256i_out = __lasx_xvldi (-3214);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0xffffff1dffffff1d;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff1dffffff1d;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffff1dffffff1d;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff1dffffff1d;
+ __m256i_out = __lasx_xvldi (2845);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvldi (-4080);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fd1000000000000;
+ __m256i_out = __lasx_xvldi (-943);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_result[3]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7200000072000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7200000072000000;
+ __m256i_out = __lasx_xvldi (-3214);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c
new file mode 100644
index 0000000..1055679
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvldrepl.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -mlasx" } */
+/* { dg-final { scan-assembler-times "xvldrepl.w" 2} } */
+
+#define N 258
+
+float a[N], b[N], c[N];
+
+void
+test ()
+{
+ for (int i = 0; i < 256; i++)
+ {
+ a[i] = c[0] * b[i] + c[1];
+ }
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c
new file mode 100644
index 0000000..f9634b1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmadd.c
@@ -0,0 +1,742 @@
+/* { 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]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_op1[3]) = 0x34ec5670cd4b5ec0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4f111e4b8e0d7291;
+ *((unsigned long *)&__m256i_op1[1]) = 0xeaa81f47dc3bdd09;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0e0d5fde5df99830;
+ *((unsigned long *)&__m256i_op2[3]) = 0x80c72fcd40fb3bc0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x84bd087966d4ace0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x26aa68b274dc1322;
+ *((unsigned long *)&__m256i_op2[0]) = 0xe072db2bb9d4cd40;
+ *((unsigned long *)&__m256i_result[3]) = 0x044819410d87e69a;
+ *((unsigned long *)&__m256i_result[2]) = 0x21d3905ae3e93be0;
+ *((unsigned long *)&__m256i_result[1]) = 0x5125883a30da0f20;
+ *((unsigned long *)&__m256i_result[0]) = 0x6d7b2d3ac2777aeb;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffff001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffeff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffff1f;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffeff;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fffe00010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fffe00010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000607f700000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000607f700000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000002e0000ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000002e0000fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_result[2]) = 0x000607f700000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_result[0]) = 0x000607f700000001;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[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_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 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_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000003f00000000;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x370036db92c4007e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x371462137c1e0049;
+ *((unsigned long *)&__m256i_op0[1]) = 0x800000fe7e02fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x371c413b999d04b5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffb7ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00010000002fff9e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffb5ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffff00ff00ffff00;
+ *((unsigned long *)&__m256i_op2[2]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffff00ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff00000000ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x37fe365b920d007e;
+ *((unsigned long *)&__m256i_result[2]) = 0x381462137d1e0149;
+ *((unsigned long *)&__m256i_result[1]) = 0x80ff00fe7e020060;
+ *((unsigned long *)&__m256i_result[0]) = 0x381c413b99cd04dd;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_op2[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op2[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op2[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_result[3]) = 0xd100645944100004;
+ *((unsigned long *)&__m256i_result[2]) = 0xd1908469108400d1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000404040104;
+ *((unsigned long *)&__m256i_result[0]) = 0xd1108199714910f9;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x61f1000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0108000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x61f1a18100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0108000000000000;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000055555555;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000055555555;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000004;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2aaaaaaa2aaaaaab;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x2aaaaaaa2aaaaaab;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[2]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[1]) = 0x7c007c007c007c00;
+ *((unsigned long *)&__m256i_result[0]) = 0x7c007c007c007c00;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fd00ffff02fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fffeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00007f7f00007f00;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffa80000ff31;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0101010127272525;
+ *((unsigned long *)&__m256i_op2[2]) = 0x23a2a121179e951d;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0101010127272525;
+ *((unsigned long *)&__m256i_op2[0]) = 0x23a2a121179e951d;
+ *((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_xvmadd_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fefffffffffffff;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x008e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x008e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0007ffff0007ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0007ffff0007ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x008e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x008e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007000008e700000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007000008e700000;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op2[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op2[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op2[0]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[2]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100000100000001;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[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_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[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_xvmadd_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvmadd_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000080040;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00009fff00002001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00009fff00002001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0001497c98ea4fca;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0001497c98ea4fca;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000006715b036;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000006715b036;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvmadd_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007f80;
+ __m256i_out = __lasx_xvmadd_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvmadd_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f80ffffff808000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f80ffffff808000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe0ffe000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fa0001fff808000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe0ffe000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fa0001fff808000;
+ __m256i_out = __lasx_xvmadd_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c
new file mode 100644
index 0000000..6238685
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c
@@ -0,0 +1,856 @@
+/* { 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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000100000000;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff8fff8fff8fff8;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2020202020206431;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x2020202020206431;
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000003f78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003f78;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000003f78;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003f78;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002001800ff0078;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01f8007001f80070;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002001800ff0078;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01f8007001f80070;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256i_result[3]) = 0x00300b40fc001678;
+ *((unsigned long *)&__m256i_result[2]) = 0xfc00000000001f80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00300b40fc001678;
+ *((unsigned long *)&__m256i_result[0]) = 0xfc00000000001f80;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe8440000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe8440000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffe8440000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffe8440000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe8440000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe8440000;
+ __m256i_out = __lasx_xvmaddwev_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op1[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m256i_result[1]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffefffefffefffef;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000e0e0e0e0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xebfd15f000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01700498ff8f1600;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf520c7c024221300;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00802fd0ff540a80;
+ *((unsigned long *)&__m256i_op1[3]) = 0xebfd15f000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01700498ff8f1600;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf520c7c024221300;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00802fd0ff540a80;
+ *((unsigned long *)&__m256i_op2[3]) = 0xf96d674800000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x44a4330e2c7116c0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x14187a7822b653c0;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfbe0b866962b96d0;
+ *((unsigned long *)&__m256i_result[3]) = 0xebfd15f000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x015c6a7facc39600;
+ *((unsigned long *)&__m256i_result[1]) = 0xfa070a51cbd95300;
+ *((unsigned long *)&__m256i_result[0]) = 0x00c7463075439280;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0555550000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0555550000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_result[3]) = 0x0555550000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0555550000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x807e80fd80fe80fd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80938013800d8002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x807e80fd80fe0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80938013800d0005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff00001fff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffff00001fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x807e80fd80fe80fd;
+ *((unsigned long *)&__m256i_result[2]) = 0x80938013800d8002;
+ *((unsigned long *)&__m256i_result[1]) = 0x807e80fd80fe0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x80938013800d0005;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op1[2]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op1[0]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_result[2]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_result[0]) = 0x556caad9aabbaa88;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff7f7f7fff7fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff7f7f7fff7fffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3f7f7f7eff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3f7f7f7eff800000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffeffffffdd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x002affaa00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffeffffffdd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffdc;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001000b000b;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001000b000b;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[3]) = 0x2020080800000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000004044f4f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0ef11ae55a5a6767;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_result[2]) = 0x6040190d20227a78;
+ *((unsigned long *)&__m256i_result[1]) = 0x132feeabd2d33b38;
+ *((unsigned long *)&__m256i_result[0]) = 0x6040190d00000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x3);
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000fe0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000fe0000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000118;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000118;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff01fd7fff7fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff01fd7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff7fff7fff;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1086658a18ba3594;
+ *((unsigned long *)&__m256i_op0[2]) = 0x160fe9f000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1086658a18ba3594;
+ *((unsigned long *)&__m256i_op0[0]) = 0x160fe9f000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe161616161614f61;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000616100004f61;
+ *((unsigned long *)&__m256i_result[3]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256i_result[2]) = 0x4df5b1a3ed5e02c1;
+ *((unsigned long *)&__m256i_result[1]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256i_result[0]) = 0x4df5b1a3ed5e02c1;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000100000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fffffffe000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fffffffe000000;
+ *((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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x01fffffffe000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x01fffffffe000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfe00000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x817f11ed81800ff0;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000ffffff;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000101000001010;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff80000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c
new file mode 100644
index 0000000..5fa0803
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c
@@ -0,0 +1,723 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((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_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f7f7f80;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00003cfc0000006f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00003cfc0000006f;
+ *((unsigned long *)&__m256i_result[3]) = 0x02007f8002000400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000c5dc02005f64;
+ *((unsigned long *)&__m256i_result[1]) = 0x02007f8002000400;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000c5dc02005f64;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000700020004;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000700020004;
+ *((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_op2[3]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000070002000a;
+ __m256i_out = __lasx_xvmaddwev_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff874dc687870000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x41dfffc000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x41dfffdfffc00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0001fbf9fbe29f52;
+ *((unsigned long *)&__m256i_op2[2]) = 0x5b409c0000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0001fbf9fbe29f52;
+ *((unsigned long *)&__m256i_op2[0]) = 0x5b409c0000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfbba01c0003f7e3f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_result[1]) = 0xfbd884e7003f7e3f;
+ *((unsigned long *)&__m256i_result[0]) = 0xff874dc687870000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000403f3fff;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40effc0000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40effc0000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00007f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00010003fc827a86;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00007f7f7f7f0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f017fc0ddbf7d86;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00153f1594ea02ff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffffffff0100;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff15c1ea95ea02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xc06e7c817f7e8081;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000bd3f016f177a;
+ *((unsigned long *)&__m256i_result[1]) = 0xc06e7c8100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x60c485800178147a;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000011f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000011f;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000192540;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000192540;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff88ff88;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op2[0]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffeffff97a1;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffdf5b000041b0;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffeffff97a1;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffdf5b000041b0;
+ __m256i_out = __lasx_xvmaddwev_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000fb8000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000fb8000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x807f807f00000380;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007380;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc03fc03f000001c0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000001c0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[3]) = 0x807f807f00000380;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007380;
+ *((unsigned long *)&__m256i_result[1]) = 0xc03fc03f000001c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001c0;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff80ff00ff80ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff80ff00ff80ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x007f00ff007f00fe;
+ *((unsigned long *)&__m256i_op2[2]) = 0xf711ee11f711ee91;
+ *((unsigned long *)&__m256i_op2[1]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xf711ee11f711ee11;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff80ff00ff80ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff80ff00ff80ff01;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvmaddwev_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01fe01fe00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000045ff740023;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000045ff740023;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000000155b200;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000b70000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000016e00;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000001e001e001e0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000001e001e001e0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c
new file mode 100644
index 0000000..4054944
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c
@@ -0,0 +1,940 @@
+/* { 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]) = 0x0003ff540000081c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0003ffd00003fd38;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001ffaa0000040e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000716800007bb6;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001ffe80001fe9c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000228200001680;
+ *((unsigned long *)&__m256i_op2[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256i_op2[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0658f2dc0eb21e3c;
+ *((unsigned long *)&__m256i_result[3]) = 0x002e4db200000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000315ac0000d658;
+ *((unsigned long *)&__m256i_result[1]) = 0x00735278007cf94c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0003ed8800031b38;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff01ff01ff01;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff0001ff04;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff02a0fefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000cfefd;
+ *((unsigned long *)&__m256i_op1[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff7fffbfefa;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1eff1902a0fea4;
+ *((unsigned long *)&__m256i_result[1]) = 0xff10000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff10fff9ff13fd17;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfafafafafafafafa;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fefefe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xf9fbf9fbf9fbf9fb;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0xfdfffdfffdfffdff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff01fffffdff;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000627;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000627;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000003fff3fff;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff00ff00ef32;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010101010101010;
+ *((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_op2[3]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffffffffdd97dc4;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffffffffdd97dc4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010100f10100fd4;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[2]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[0]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[2]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[0]) = 0xebebebebebebebeb;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x001f001fffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffe0ffe000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x34ec5670cd4b5ec0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4f111e4b8e0d7291;
+ *((unsigned long *)&__m256i_op0[1]) = 0xeaa81f47dc3bdd09;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0e0d5fde5df99830;
+ *((unsigned long *)&__m256i_op1[3]) = 0x67390c19e4b17547;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbacda0f96d2cec01;
+ *((unsigned long *)&__m256i_op1[1]) = 0xee20ad1adae2cc16;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5a2003c6a406fe53;
+ *((unsigned long *)&__m256i_op2[3]) = 0x80c72fcd40fb3bc0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x84bd087966d4ace0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x26aa68b274dc1322;
+ *((unsigned long *)&__m256i_op2[0]) = 0xe072db2bb9d4cd40;
+ *((unsigned long *)&__m256i_result[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_result[2]) = 0x5464fbfc416b9f71;
+ *((unsigned long *)&__m256i_result[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d8264202b8ea3f0;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff0000ffff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff000000ffffff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffffffff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01fa022a01a401e5;
+ *((unsigned long *)&__m256i_op1[2]) = 0x030d03aa0079029b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x024c01f901950261;
+ *((unsigned long *)&__m256i_op1[0]) = 0x008102c2008a029f;
+ *((unsigned long *)&__m256i_op2[3]) = 0x002e4db200000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000315ac0000d658;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00735278007cf94c;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0003ed8800031b38;
+ *((unsigned long *)&__m256i_result[3]) = 0x01a72334ffff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff4f6838ff937648;
+ *((unsigned long *)&__m256i_result[1]) = 0x00a2afb7fff00ecb;
+ *((unsigned long *)&__m256i_result[0]) = 0xffce110f004658c7;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003a099512;
+ *((unsigned long *)&__m256i_op0[1]) = 0x280ac9da313763f5;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe032c738adcc6bbf;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000fffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003a099512;
+ *((unsigned long *)&__m256i_result[1]) = 0x280ac9da313763f5;
+ *((unsigned long *)&__m256i_result[0]) = 0xe032c738adcc6bbf;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((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_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f7f7f7f7f7;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00010003;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001f0000ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000060008;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000000c005b;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffffffffffe0000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000040053;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff0007fff7;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff005affa4;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000053ffac;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000420080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5fff5fff607f0000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100004300000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100004300000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op2[2]) = 0xff00010001000100;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff00010001000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x01ffff4300ffff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x01ffff4300ffff00;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffb8579f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffdbbbcf;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffb8579f;
+ __m256i_out
+ = __lasx_xvmaddwev_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_result[2]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_result[1]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_result[0]) = 0x00b200b300800080;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000404040;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1fa0000000080000;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+ __m256i_out
+ = __lasx_xvmaddwev_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202020201010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0202020201010000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffe928f1313c9cc;
+ *((unsigned long *)&__m256i_result[0]) = 0x4244020201010000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0005000500050005;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op2[3]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_op2[2]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000003f3f3f3f;
+ *((unsigned long *)&__m256i_op2[0]) = 0x3f3f3f3f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_result[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_result[0]) = 0x8787878a00000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8787878a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffe3;
+ *((unsigned long *)&__m256i_result[2]) = 0x63636344c3c3c4f6;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffc3;
+ *((unsigned long *)&__m256i_result[0]) = 0xc3c3c500fffffff6;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((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_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffbfffcffeffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffbfffcffeffff0;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000b0cfffff4f3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000f9bb562f56c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000b0cfffff4f3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000f9bb562f56c80;
+ *((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_op2[3]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op2[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op2[0]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0018761ed60b5d7f;
+ *((unsigned long *)&__m256i_result[2]) = 0xabdcdc9938afafe9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0018761ed60b5d7f;
+ *((unsigned long *)&__m256i_result[0]) = 0xabdcdc9938afafe9;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c
new file mode 100644
index 0000000..6838769
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c
@@ -0,0 +1,742 @@
+/* { 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]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fff7fff;
+ *((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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op2[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[3]) = 0x1031146010201020;
+ *((unsigned long *)&__m256i_result[2]) = 0x1020102010201020;
+ *((unsigned long *)&__m256i_result[1]) = 0x1031146010201020;
+ *((unsigned long *)&__m256i_result[0]) = 0x1020102010201020;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3d3d3d3d3d3d3d3d;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfff8fffffff8ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x94d7fb5200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x94d7fb5200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x94d7fb5200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x94d7fb5200000000;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020000010201;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000020000010201;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020000010201;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000020000010201;
+ __m256i_out = __lasx_xvmaddwod_h_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op2[2]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op2[0]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000017e;
+ __m256i_out = __lasx_xvmaddwod_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f3fc6c68787;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f3f87870000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003e3ec6c68686;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffffeff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003e3e87870000;
+ __m256i_out = __lasx_xvmaddwod_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_op0[2]) = 0x019d00a2003a0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_op0[0]) = 0x019d00a2003a0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_result[2]) = 0x019d00a20039fff9;
+ *((unsigned long *)&__m256i_result[1]) = 0x01fe007a01c40110;
+ *((unsigned long *)&__m256i_result[0]) = 0x019d00a2003a0000;
+ __m256i_out = __lasx_xvmaddwod_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_w_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f3280000dfff;
+ *((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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f3280000dfff;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff90ffffff80;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0xfff9fffffffbffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffdaaaaffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff9fffffffbffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffdaaaaffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3f2c678e38d1104c;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3f2c678e38d1104c;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff0000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3fffffffff7f0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3fffffffff7f0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000c7aff7c00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000c7aff7c00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000002030000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x030303670101fd90;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000002030000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x030303670101fd90;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3ffffffffc7bfc99;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3ffffffffc7bfc99;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op2[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_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0200000202000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0200000202000002;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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_op2[3]) = 0x0001000100010000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x020afefb08140000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf800f7fff8ffc0ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xf8fff7fff7ffa000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf800f800f800e000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf800f800f800e000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_q_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c
new file mode 100644
index 0000000..f9f88b6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c
@@ -0,0 +1,799 @@
+/* { 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]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff80008000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080008000b8f1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x074132a240000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x06f880008000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080008000b8f1;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000c0;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000012481e4950;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000001658166830;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000040;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f7f7f7f7f7;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1f60010000080100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1f60010000080100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1f60010000080100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1f60010000080100;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffeffed;
+ *((unsigned long *)&__m256i_op2[3]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xc039000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_result[2]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_result[1]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_result[0]) = 0xbf3ffffffffeffed;
+ __m256i_out = __lasx_xvmaddwod_h_bu (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0ff80100ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ff80100ffffffff;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[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_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x34000000fff00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff6e00000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3380000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x363c0000fff3c000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffb7146213;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffc1e0049;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffb71c413b;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf3317da580000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x34000000fff00000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff6e00000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3380000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x363c0000fff3c000;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe000ffffffffff;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3dc02b400a003400;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3dc02b400a003400;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3dc02b400a003400;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3dc02b400a003400;
+ *((unsigned long *)&__m256i_op2[3]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op2[2]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_op2[1]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op2[0]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_result[3]) = 0x01ce3c0050d32d40;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fadafc013acf600;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ce3c0050d32d40;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fadafc013acf600;
+ __m256i_out = __lasx_xvmaddwod_w_hu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffecffffffec;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffffefdfffffefd;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000100;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffff7d80000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000100;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000001fdfffffe02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001fefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff01fefffeff02;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000001fdfffffe02;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000001fefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff01fefffeff02;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffddffdeffb5ff8d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffddffdeffb5ff8d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffffffeeffaf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffeeffaf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffddffdeffb5ff8d;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffddffdeffb5ff8d;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffefffcffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0febedc9bb95dd8f;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffcffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0febedc9bb95dd8f;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000545400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000545400;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff7bfffff1;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff80007fe9;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff7bfffff1;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff80007fe9;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010511c54440437;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010511c54440437;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000103fca1bd;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000103fca1bd;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000103fca1bd;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000103fca1bd;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010511c54440438;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010511c54440438;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwod_d_wu (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01fe01fe00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000045ff740023;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000045ff740023;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000000155b200;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000b70000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000016e00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000016e00;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000001e001e001e0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000001e001e001e0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaddwev_q_du (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c
new file mode 100644
index 0000000..5210e4c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c
@@ -0,0 +1,820 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff01ff01ff01;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000000;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000b8f81b8c850f4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000b8f81b8c850f4;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000b8f81b8c850f4;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000b8f81b8c850f4;
+ *((unsigned long *)&__m256i_result[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_result[2]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_result[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_result[0]) = 0x000b2673a90896a4;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc600000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff000003c0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff000003c0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7c030000ffc4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7c030000ffc4;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00f7000000f70006;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00f7000000f70006;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xe07de0801f20607a;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xe07de0801f20607a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff0007a861;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_h_bu_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xbff0000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0002fffeffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0002fffeffff;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000505;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000627;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000627;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1f60000000c00000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1f60000000c00000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((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_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 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_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x437f201f201f2020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x037f201f001f2020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x437f201f201f2020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x037f201f001f2020;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x21bb481000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01bf481000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x21bb481000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01bf481000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8001ffff0001;
+ __m256i_out
+ = __lasx_xvmaddwod_w_hu_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffe40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x79f9f9f900000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x79f9f9f900000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffe40;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000089;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffeffffffdd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffdc;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out
+ = __lasx_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op2[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_xvmaddwod_d_wu_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202020201010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0202020201010000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256i_op2[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000eef14fe8;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffe928f1313c9cc;
+ *((unsigned long *)&__m256i_result[0]) = 0x4244020201010000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0005000500050005;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op2[3]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_op2[2]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000003f3f3f3f;
+ *((unsigned long *)&__m256i_op2[0]) = 0x3f3f3f3f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_result[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_result[0]) = 0x8787878a00000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffff6;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op2[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8787878a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffe3;
+ *((unsigned long *)&__m256i_result[2]) = 0x63636344c3c3c4f6;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffc3;
+ *((unsigned long *)&__m256i_result[0]) = 0xc3c3c500fffffff6;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((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_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffbfffcffeffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffbfffcffeffff0;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000b0cfffff4f3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000f9bb562f56c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000b0cfffff4f3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000f9bb562f56c80;
+ *((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_op2[3]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op2[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op2[0]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0018761ed60b5d7f;
+ *((unsigned long *)&__m256i_result[2]) = 0xabdcdc9938afafe9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0018761ed60b5d7f;
+ *((unsigned long *)&__m256i_result[0]) = 0xabdcdc9938afafe9;
+ __m256i_out
+ = __lasx_xvmaddwev_q_du_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c
new file mode 100644
index 0000000..96c6671
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-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]) = 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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f0000007f000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f0000007f000000;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff000000;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((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]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff000000000000;
+ __m256i_out = __lasx_xvmax_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]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000400040004;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x5900000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5900000000000000;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ffce20;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ffce20;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ee1100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000004560408;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ee1100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000004560408;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000004560420;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvmax_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]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f433c78;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvmax_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_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_xvmax_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff0000000000000;
+ __m256i_out = __lasx_xvmax_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvmax_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]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvmax_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]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_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_xvmax_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000400010004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000e0001000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000e0001000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000e0001000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000e0001000e;
+ __m256i_out = __lasx_xvmax_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]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1090918800000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1090918800000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c80780000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004000;
+ __m256i_out = __lasx_xvmax_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]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvmax_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_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]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007f7f817f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007f7f817f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f807f007f7f817f;
+ __m256i_out = __lasx_xvmax_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffebeeaaefafb;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffebeeaaeeeeb;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffebeeaaefafb;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffebeeaaeeeeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[2]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op0[0]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff00;
+ __m256i_out = __lasx_xvmax_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]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff00007fff0000;
+ __m256i_out = __lasx_xvmax_w (__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]) = 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_xvmax_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_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]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m256i_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_xvmax_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]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvmax_d (__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]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op1[2]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_op1[0]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_result[2]) = 0x556caad9aabbaa88;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004a557baac4;
+ *((unsigned long *)&__m256i_result[0]) = 0x556caad9aabbaa88;
+ __m256i_out = __lasx_xvmax_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000020006;
+ *((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]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020006;
+ __m256i_out = __lasx_xvmax_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]) = 0xffffffff0000000f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff0000000d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000000f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff0000000d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe97c020010001;
+ __m256i_out = __lasx_xvmax_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-xvmax-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c
new file mode 100644
index 0000000..38f2c0a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c
@@ -0,0 +1,560 @@
+/* { 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]) = 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_xvmax_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_xvmax_bu (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_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]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffa80000ff31;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_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]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x817f11ed81800ff0;
+ __m256i_out = __lasx_xvmax_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_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]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe000000000;
+ __m256i_out = __lasx_xvmax_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_xvmax_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_xvmax_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_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]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800000ff800000ff;
+ __m256i_out = __lasx_xvmax_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvmax_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffeeffaf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffffeeffaf;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010100f10100fd4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffeeffaf;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010100f10100fd4;
+ __m256i_out = __lasx_xvmax_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]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[0]) = 0xf0f0f0f0f0f0f0f0;
+ __m256i_out = __lasx_xvmax_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_xvmax_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]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc600000000000000;
+ __m256i_out = __lasx_xvmax_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_xvmax_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((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_xvmax_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_xvmax_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_xvmax_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffd8ffc7ffffdf0d;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffd8ffc7ffffdf0d;
+ __m256i_out = __lasx_xvmax_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]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmax_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000014402080144;
+ __m256i_out = __lasx_xvmax_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f433c78;
+ __m256i_out = __lasx_xvmax_wu (__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]) = 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]) = 0x00000000ffff97a2;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff97a2;
+ __m256i_out = __lasx_xvmax_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000070002000a;
+ __m256i_out = __lasx_xvmax_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000004fb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000004fb;
+ *((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_xvmax_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080000000800;
+ __m256i_out = __lasx_xvmax_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_du (__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]) = 0xffffc7418a023680;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff8845bb954b00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffc7418a023680;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff8845bb954b00;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000002a5429;
+ __m256i_out = __lasx_xvmax_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmax_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_xvmax_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003f800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040404040;
+ __m256i_out = __lasx_xvmax_du (__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_xvmax_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000001400;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffff08a7de0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffff07c4170;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffff08a7de0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffff07c4170;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffff08a7de0;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffff07c4170;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffff08a7de0;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffff07c4170;
+ __m256i_out = __lasx_xvmax_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_xvmax_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-xvmaxi-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c
new file mode 100644
index 0000000..e804a0a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c
@@ -0,0 +1,471 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffd10000006459;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000441000000004;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000040400000104;
+ *((unsigned long *)&__m256i_result[3]) = 0x0f0f0f0f0f0f6459;
+ *((unsigned long *)&__m256i_result[2]) = 0x0f0f44100f0f0f0f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0f0f0f0f0f0f0f0f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0f0f0f0f0f0f0f0f;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8080808180808093;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80808081808080fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8080808180808093;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80808081808080fb;
+ *((unsigned long *)&__m256i_result[3]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256i_result[2]) = 0xf5f5f5f5f5f5f5fe;
+ *((unsigned long *)&__m256i_result[1]) = 0xf5f5f5f5f5f5f5f5;
+ *((unsigned long *)&__m256i_result[0]) = 0xf5f5f5f5f5f5f5fb;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[2]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[1]) = 0x0909090909090909;
+ *((unsigned long *)&__m256i_result[0]) = 0x0909090909090909;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0d0d0d0d0d;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a0a0a0a7f0a0a0a;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0707070707070707;
+ *((unsigned long *)&__m256i_result[2]) = 0x0707070707070707;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707070707070707;
+ *((unsigned long *)&__m256i_result[0]) = 0x0707070707070707;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0d0d0d0d0d;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[3]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[2]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[1]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[0]) = 0x2a2a2a2a2a2a2a2a;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0c0c0c0c0c0c0c0c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0c0c0c0c0c0c0c0c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0c0c0c0c0c0c0c0c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0c0c0c0c0c0c0c0c;
+ __m256i_out = __lasx_xvmaxi_b (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0005000500050005;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc00000ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffc00000ffc0ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff90000fff9fff9;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff90000fff9fff9;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00040000;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffe0000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffe0000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00080008000801ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_result[1]) = 0x00080008000801ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000800080008;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000c9;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000008000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000008000165a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0009000900090009;
+ *((unsigned long *)&__m256i_result[2]) = 0x000900090009165a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0009000900090009;
+ *((unsigned long *)&__m256i_result[0]) = 0x000900090009165a;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfd12fd12fd12fd12;
+ *((unsigned long *)&__m256i_result[3]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_result[2]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m256i_result[0]) = 0x000a000a000a000a;
+ __m256i_out = __lasx_xvmaxi_h (__m256i_op0, 10);
+ 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_result[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000401000000;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0110000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0110000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0110000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0110000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0110000000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0110000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0110000000000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0110000000000080;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000e0000000e;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff400000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff400000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, -12);
+ 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_result[3]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000900000009;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 9);
+ 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_result[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000081f20607a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000081f20607a;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, 8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmaxi_w (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000004560420;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[2]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[0]) = 0x7e00000000000000;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -9);
+ 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_result[3]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff5;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff5;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007b007e;
+ __m256i_out = __lasx_xvmaxi_d (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c
new file mode 100644
index 0000000..b6b3406
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c
@@ -0,0 +1,504 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a0a0a0a0a0a0a0a;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_result[2]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_result[1]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_result[0]) = 0x1717171717171717;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe00007f000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1616161616161616;
+ *((unsigned long *)&__m256i_result[2]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffe16167f161616;
+ *((unsigned long *)&__m256i_result[0]) = 0x161616167fffffff;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000feb60000b7d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000feb60000c7eb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000feb60000b7d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000feb60000c7eb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0707feb60707c7eb;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0707feb60707c7eb;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_result[2]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_result[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m256i_result[0]) = 0x1111111111111111;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_result[3]) = 0x1818ffff1818ffa3;
+ *((unsigned long *)&__m256i_result[2]) = 0x181818181818185a;
+ *((unsigned long *)&__m256i_result[1]) = 0x1818ffff1818ffa3;
+ *((unsigned long *)&__m256i_result[0]) = 0x181818181818185a;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[2]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[0]) = 0x1c1c1c1c1c1c1c1c;
+ __m256i_out = __lasx_xvmaxi_bu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xeffc000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf064c6098d214127;
+ *((unsigned long *)&__m256i_op0[1]) = 0xeffc000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf064c6098d214127;
+ *((unsigned long *)&__m256i_result[3]) = 0xeffc001800180018;
+ *((unsigned long *)&__m256i_result[2]) = 0xf064c6098d214127;
+ *((unsigned long *)&__m256i_result[1]) = 0xeffc001800180018;
+ *((unsigned long *)&__m256i_result[0]) = 0xf064c6098d214127;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007000700070007;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_result[2]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_result[1]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_result[0]) = 0x0018001800180018;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0017001700176d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0017001700176d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0017001700176d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0017001700176d6d;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x001fffffffe00011;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x001fffffffe00011;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_hu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001400000014;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000e00000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000e00000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000e00000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000e00000080;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000fd0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fd0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001b00fd0000;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000c7aff7c00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000c7aff7c00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffd017d00;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001f0000ffff;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000300000003;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1010101010001000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1010101000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1010101010001000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x101010100000000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001e0007ffff;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000004000000fd;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000004000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000004;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001f;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x0);
+ 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_result[3]) = 0x0000001700000017;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001700000017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001700000017;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_result[3]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_result[2]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_result[1]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_result[0]) = 0x07fed3c8f7ad28d0;
+ __m256i_out = __lasx_xvmaxi_wu (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001e;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001e;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[0]) = 0x1c1b1a191c1b1a19;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((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_xvmaxi_du (__m256i_op0, 0x1c);
+ 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_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000001c;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001c;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000001c;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001c;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000005;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000600000006;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x17);
+ 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_result[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffe;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000012;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000b;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000013;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000014;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000014;
+ __m256i_out = __lasx_xvmaxi_du (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c
new file mode 100644
index 0000000..7dbf335c1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c
@@ -0,0 +1,575 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8001000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000800080000728;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8001800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x800080008000b8f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff80008000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080008000b8f1;
+ __m256i_out = __lasx_xvmin_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]) = 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]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmin_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_xvmin_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_xvmin_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmin_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000180007fe8;
+ *((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]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000180007fe8;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000017bfffff0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000180007fe8;
+ __m256i_out = __lasx_xvmin_b (__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]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8848c848c848c848;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8848c848c848c848;
+ *((unsigned long *)&__m256i_result[3]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_result[2]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_result[1]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_result[0]) = 0x8800c800c800c801;
+ __m256i_out = __lasx_xvmin_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7070545438381c1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7070545438381c1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7070545438381c1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7070545438381c1c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff00ffff8000;
+ __m256i_out = __lasx_xvmin_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_xvmin_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x003ff18080010201;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x003ff18080010201;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000f18080010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000f18080010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x0000000000000d24;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000fffe;
+ __m256i_out = __lasx_xvmin_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff81ff7d;
+ __m256i_out = __lasx_xvmin_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmin_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000017f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000017f7f7f7f;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmin_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_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000004040104;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffd1108199;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000714910f9;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffd10000006459;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000441000000004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000040400000104;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffd10000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffd1108199;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000104;
+ __m256i_out = __lasx_xvmin_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fd00ffff02ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fffeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff02ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff02ff;
+ __m256i_out = __lasx_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000f0;
+ *((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_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffe1ffe0;
+ __m256i_out = __lasx_xvmin_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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_xvmin_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf000f00000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf000f00000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xf000f00000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf000f00000000001;
+ __m256i_out = __lasx_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_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_xvmin_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_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007c000000810081;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff0102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007c000000810081;
+ *((unsigned long *)&__m256i_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_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4545454545454545;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4545454545454545;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((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_xvmin_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]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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_xvmin_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmin_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_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]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffbfffffffb;
+ __m256i_out = __lasx_xvmin_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-xvmin-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c
new file mode 100644
index 0000000..9eaa0e9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c
@@ -0,0 +1,680 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f017f807f017d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f017f807f017f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000017f0000017f;
+ __m256i_out = __lasx_xvmin_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_xvmin_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_xvmin_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_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_xvmin_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_xvmin_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_xvmin_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_xvmin_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f70000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f70000000000000;
+ __m256i_out = __lasx_xvmin_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002080100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002080100;
+ __m256i_out = __lasx_xvmin_bu (__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]) = 0x00ff0000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff0000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmin_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_xvmin_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]) = 0x000000001de2dc20;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000001de2dc20;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_bu (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffe651bfff;
+ *((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_xvmin_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000468600007f79;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f3280000dfff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1d1d1d1ddd9d9d1d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1d1d1d1d1d1d1d1d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1d1d1d1d046fdd1d;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001d1d00001d1d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001d1d00007f79;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001d1d00001d1d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001d1d0000dd1d;
+ __m256i_out = __lasx_xvmin_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_xvmin_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_xvmin_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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_xvmin_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_xvmin_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00011ffb0000bee1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00011ffb0000bee1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001010600000106;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001010600000106;
+ __m256i_out = __lasx_xvmin_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_xvmin_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffd5d5ffffd5d6;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffd5d5ffffd5d6;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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_xvmin_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc58a0a0a07070706;
+ *((unsigned long *)&__m256i_op1[2]) = 0x006b60e4180b0023;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1b39153f334b966a;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf1d75d79efcac002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x006b60e40e0e0e0e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x36722a7e66972cd6;
+ __m256i_out = __lasx_xvmin_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]) = 0x000000000101ff01;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvmin_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00040000;
+ __m256i_out = __lasx_xvmin_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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00010e0d00009e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00009000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000e0e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00009000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000033;
+ __m256i_out = __lasx_xvmin_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]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff0ff00fff0ff10;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff0ff00fff0ff10;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400100004001;
+ __m256i_out = __lasx_xvmin_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x60f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8008000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x60f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8008000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010183f9999b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01010101d58f43c9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010183f9999b;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x01010101d58f43c9;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvmin_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_xvmin_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff007f00ff;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f00ff007f00ff;
+ __m256i_out = __lasx_xvmin_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000001fffe;
+ __m256i_out = __lasx_xvmin_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_xvmin_du (__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_xvmin_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_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_xvmin_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_xvmin_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0000;
+ *((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_xvmin_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmin_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-xvmini-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c
new file mode 100644
index 0000000..01aabad
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c
@@ -0,0 +1,416 @@
+/* { 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_result[3]) = 0xf90c0c0c00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0ca40c0c0c0c0cc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0c0c0c0c0cb60cc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xfbe0b80c960c96d0;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010bfc80010bf52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff1bfca0011bfcb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010bfc80010bf52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff1bfca0011bfcb;
+ *((unsigned long *)&__m256i_result[3]) = 0xf5f5bfc8f5f5bff5;
+ *((unsigned long *)&__m256i_result[2]) = 0xf5f1bfcaf5f5bfcb;
+ *((unsigned long *)&__m256i_result[1]) = 0xf5f5bfc8f5f5bff5;
+ *((unsigned long *)&__m256i_result[0]) = 0xf5f1bfcaf5f5bfcb;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[2]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[1]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[0]) = 0xf8f8f8f8f8f8f8f8;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, -8);
+ 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_result[3]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000aaabffff;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff47b4ffff5878;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000b84b0000a787;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff47b4ffff5878;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000b84b0000a787;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff07b4ffff0707;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000b8070000a787;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff07b4ffff0707;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000b8070000a787;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f7f7f7f7f7;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_result[2]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_result[1]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_result[0]) = 0xf3f3f3f3f3f3f3f3;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[0]) = 0xf9f9f9f9f9f9f9f9;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc30e0000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc30e0000ff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc3030000ff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc3030000ff800000;
+ __m256i_out = __lasx_xvmini_b (__m256i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff6fff6fff6fff6;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1fffffff1fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0383634303836343;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1fffffff1fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0383634303836343;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002ffff0002ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002ffff0002ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200020002;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f7bc0001f7bd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000f93b0000017c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f7bc0001f7bd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000f93b0000017b;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff2f7bcfff2f7bd;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff2f93bfff2fff2;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff2f7bcfff2f7bd;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff2f93bfff2fff2;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff9fff9fff9fff9;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff9fff9fff9fff9;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff3fff3fff3fff3;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff2fff2fff2fff2;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff2fff2fff2fff2;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff2fff2fff2fff2;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff2fff2fff2fff2;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_h (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000004;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, 4);
+ 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_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff0e400;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000100000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff2fffffff2;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff2fffffff2;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff2fffffff2;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff2fffffff2;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000010000000a;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff8fffffff8;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff7fffffff7;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff0fffffff0;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff0fffffff0;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmini_w (__m256i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x327f010101010102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x327f010101010102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff4;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff007f007f00;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, -5);
+ 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_result[3]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_d (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c
new file mode 100644
index 0000000..8eb7d93
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c
@@ -0,0 +1,284 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d0d00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d0d00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0d0d0d0d0d;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1b1b1b1b1b1b1b1b;
+ *((unsigned long *)&__m256i_result[2]) = 0x1b1b1b1b1b1b1b1b;
+ *((unsigned long *)&__m256i_result[1]) = 0x1b1b1b1b1b1b1b1b;
+ *((unsigned long *)&__m256i_result[0]) = 0x1b1b1b1b1b1b1b1b;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1e1e1e0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1e1e1e0000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1e1e1e0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1e1e1e0000000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a0a0a0a00000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008001c0010001c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008001c0010001c;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_bu (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_hu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007000000000000;
+ __m256i_out = __lasx_xvmini_hu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003ddd80007bbb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003ddd80007bbb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001700170017;
+ __m256i_out = __lasx_xvmini_hu (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_hu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_hu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((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_xvmini_du (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffe400000707;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000af100001455;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffe400000707;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000af100001455;
+ *((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_xvmini_du (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff61010380;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff61010380;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000006;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmini_du (__m256i_op0, 0x4);
+ 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 0000000..6f34f6f
--- /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 0000000..d0a9e9d
--- /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-xvmskgez.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c
new file mode 100644
index 0000000..15e66ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c
@@ -0,0 +1,86 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff00;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000203ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000203ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000fafe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000fafe;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmskgez_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c
new file mode 100644
index 0000000..53b21f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c
@@ -0,0 +1,373 @@
+/* { 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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3922d40000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000c85221c0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7ebfab800000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000f20;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000009f0;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x40d74f979f99419f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000022;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1f9d9f9d1f9db29f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1f9d9f9d201cb39e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x201c9f9d201cb29f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1f9d9f9d201cb39e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007773;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003373;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc080ffff0049ffd2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0049ffd2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffeffb9ff9d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00630064004bffd0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe0f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8008000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe0f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8008000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000b8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000b8;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fffc0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000022;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[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_xvmskltz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000088;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000088;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x296e000018170000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x296e000018170000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffc000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffeff000c057c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffc000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffeff000c057c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000f0f0;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000008c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000008c;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000cc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000cc;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000054;
+ __m256i_out = __lasx_xvmskltz_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmskltz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c
new file mode 100644
index 0000000..81865fd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c
@@ -0,0 +1,163 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0020002000400040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000005555;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000005555;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000300000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000300000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004411;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000033;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000f91;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000001f;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0060401900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0060401900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000006170;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000006170;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000002ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000002ff;
+ __m256i_out = __lasx_xvmsknz_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsub.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsub.c
new file mode 100644
index 0000000..8c8d499
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmsub.c
@@ -0,0 +1,647 @@
+/* { 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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x074132a240000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00007ffe81fdfe03;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[0]) = 0x555555ab555555ab;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000017f0000017d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000017f0000017f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002e0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002e0000fffe;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000002e0000ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000002e0000002e;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000002e0000fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000f7bc0001f7bd;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000f93b0000017c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000f7bc0001f7bd;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f93b0000017b;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1410141014101410;
+ *((unsigned long *)&__m256i_result[2]) = 0x1410141014101410;
+ *((unsigned long *)&__m256i_result[1]) = 0x1410141014101410;
+ *((unsigned long *)&__m256i_result[0]) = 0x1410141014101410;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000007fff01ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdb8e209d0cce025a;
+ *((unsigned long *)&__m256i_op1[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000007dfdff4b;
+ *((unsigned long *)&__m256i_result[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_result[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_result[1]) = 0x9a7f997fff01ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xbe632a4f1c3c5653;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x01010101010000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000004800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000004800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004500f300fb;
+ *((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_op2[3]) = 0x0000000004800000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000004800000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_result[3]) = 0x7b7b7b7b80000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xcacacb1011040500;
+ *((unsigned long *)&__m256i_result[1]) = 0x7b7b7b7b80000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xcacacb1011040500;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffefffffffe;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000001a00;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_result[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_result[0]) = 0xff80000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_result[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0xa020202020206431;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff00000000ff;
+ *((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_op2[3]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fff80fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff80fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff80007ffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff007fff80fe;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f807f007f7f817f;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[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_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff457db03f;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x001ffffe00200000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe200000fe1f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000009e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000009e;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffff0078ffff0078;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffff0078ffff0078;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff8;
+ __m256i_out = __lasx_xvmsub_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvmsub_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c
new file mode 100644
index 0000000..58ad8bf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c
@@ -0,0 +1,650 @@
+/* { 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]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000800;
+ *((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_xvmuh_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_xvmuh_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_xvmuh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_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_xvmuh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000007ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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]) = 0x00000000fdfcfda8;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000e2821d20ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fdfcfda8;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000e2821d20ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 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_xvmuh_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]) = 0x0000ffffffffff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ff8000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ff8000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x372e9d75e8aab100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc5c085372cfabfba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x31730b5beb7c99f5;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0658f2dc0eb21e3c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf259905a0c126604;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6d3c2d3aa1c82947;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000f647000007d6;
+ *((unsigned long *)&__m256i_result[2]) = 0x031b358c021ee663;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000faaf0000f9f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x02b4fdadfa9704df;
+ __m256i_out = __lasx_xvmuh_h (__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]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbffffffffffffeff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7ffffffffffff1f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbffffffffffffeff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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_xvmuh_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_xvmuh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_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_xvmuh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvmuh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffe06003fc000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffe06003fc000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffff8900000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff8900000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_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_xvmuh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000aaaa00008bfe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000aaaa0000aaaa;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmuh_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff5556aaaa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff5556aaaa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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_xvmuh_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_xvmuh_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_xvmuh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvmuh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_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_xvmuh_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_xvmuh_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_xvmuh_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]) = 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_xvmuh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_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_xvmuh_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_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_xvmuh_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0x000000000007fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000036a37;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000007fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000004def9;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvmuh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffe0001;
+ __m256i_out = __lasx_xvmuh_d (__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]) = 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_xvmuh_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_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]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[2]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[1]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[0]) = 0x000408080c111414;
+ __m256i_out = __lasx_xvmuh_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]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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-xvmuh-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c
new file mode 100644
index 0000000..85d24fe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c
@@ -0,0 +1,635 @@
+/* { 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]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_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_xvmuh_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_xvmuh_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffbdff3cffbdff44;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffbdff3cffbdff44;
+ *((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]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfe8bfe0efe8bfe12;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfe8bfe0efe8bfe12;
+ __m256i_out = __lasx_xvmuh_bu (__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]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000027;
+ __m256i_out = __lasx_xvmuh_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]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvmuh_bu (__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_xvmuh_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_xvmuh_hu (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((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]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_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_xvmuh_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]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00020002ff820002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00020002ff820002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40efffe09fa88260;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6b07ca8e013fbf01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40efffe09fa7e358;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80ce32be3e827f00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x86ff76ffff4eff42;
+ *((unsigned long *)&__m256i_op1[2]) = 0x86ffffffffff9eff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x86ff76ffff4effff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x86ff32ffaeffffa0;
+ *((unsigned long *)&__m256i_result[3]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x3870ca8d013e76a0;
+ *((unsigned long *)&__m256i_result[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ec0a1b2aba7ed0;
+ __m256i_out = __lasx_xvmuh_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]) = 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_xvmuh_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]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffc020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffc020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001400000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_hu (__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]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0c6a240000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0f00204000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x04a3000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x04a3000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff8000fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001fffe00017fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff8000fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001fffe00017fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007f00fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000fe0000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007f00fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000fe0000007f;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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]) = 0xffe00000ffe00000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffe00000ffe00000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000fafe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000fafe;
+ *((unsigned long *)&__m256i_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_xvmuh_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]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff01c000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000f1000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001341c4000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001000310000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000033e87ef1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000002e2100;
+ __m256i_out = __lasx_xvmuh_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000045f3fb;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_wu (__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_xvmuh_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_xvmuh_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_xvmuh_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdbc8000000003fff;
+ *((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_xvmuh_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_xvmuh_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_result[2]) = 0x3abac5447fffca89;
+ *((unsigned long *)&__m256i_result[1]) = 0x3aadec4f6c7975b1;
+ *((unsigned long *)&__m256i_result[0]) = 0x3abac5447fffca89;
+ __m256i_out = __lasx_xvmuh_du (__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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000003f;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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]) = 0x00000000ffffffff;
+ *((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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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_xvmuh_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]) = 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_xvmuh_du (__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]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000010000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000010000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvmuh_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 0000000..be3c8e7
--- /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 0000000..01ff716
--- /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 0000000..32088f4
--- /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 0000000..19157f6
--- /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 0000000..80fdcda
--- /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 0000000..1a4b221
--- /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 0000000..9fcd3ce
--- /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;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvneg.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvneg.c
new file mode 100644
index 0000000..3cd1626
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvneg.c
@@ -0,0 +1,526 @@
+/* { 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]) = 0x002e4db200000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000315ac0000d658;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00735278007cf94c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0003ed8800031b38;
+ *((unsigned long *)&__m256i_result[3]) = 0xffd1b24e00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcea54ffff29a8;
+ *((unsigned long *)&__m256i_result[1]) = 0xff8cad88ff8306b4;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffc1278fffce4c8;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x06f880008000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080008000b8f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000010180000101;
+ *((unsigned long *)&__m256i_result[2]) = 0xfa08800080000101;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080008000480f;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010201010204;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010102;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010203;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ 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_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007380;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000f1c00;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000800000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0081000100810001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0081000100810001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0081000100810001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0081000100810001;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x223d76f09f3881ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3870ca8d013e76a0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x223d76f09f37e357;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ec0a1b2aba7ed0;
+ *((unsigned long *)&__m256i_result[3]) = 0xdec38a1061c87f01;
+ *((unsigned long *)&__m256i_result[2]) = 0xc8903673ffc28a60;
+ *((unsigned long *)&__m256i_result[1]) = 0xdec38a1061c91da9;
+ *((unsigned long *)&__m256i_result[0]) = 0xbd14f6e5d6468230;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000007e8080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fdda7dc4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000007e8080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fdda7dc4;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff827f80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0226823c;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff827f80;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0226823c;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000180000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000180000001;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000008000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000008000165a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff00017fff005d;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffe9a6;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff00017fff005d;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffe9a6;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff0100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff0100000001;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100004300000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100004300000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff0000bd00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff0000bd00000000;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000010000080040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff00fff8ffc0;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000497fe0000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000683fe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000497fe0000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000683fe0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff97c120000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff97c120000000;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefdfdfdfd;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefdfdfdfd;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010202020203;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010201010102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010202020203;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010201010102;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000032;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000032;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffce;
+ __m256i_out = __lasx_xvneg_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvneg_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007fe000007fe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fe000007fe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000812000008120;
+ *((unsigned long *)&__m256i_result[1]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000812000008120;
+ __m256i_out = __lasx_xvneg_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffd880;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffd880;
+ __m256i_out = __lasx_xvneg_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnor.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnor.c
new file mode 100644
index 0000000..3a491eca
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnor.c
@@ -0,0 +1,170 @@
+/* { 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]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x40d74f979f99419f;
+ *((unsigned long *)&__m256i_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]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xbf28b0686066be60;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f6ff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffff6ff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffff6ff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000900ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000900ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8888888808888888;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0888888888888888;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8888888808888888;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0888888888888888;
+ *((unsigned long *)&__m256i_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]) = 0x77777777f7777777;
+ *((unsigned long *)&__m256i_result[2]) = 0xf777777777777777;
+ *((unsigned long *)&__m256i_result[1]) = 0x77777777f7777777;
+ *((unsigned long *)&__m256i_result[0]) = 0xf777777777777777;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x407b40ff40ff40f1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x407b40ff40ff40f1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x407b40ff40ff40f1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x40ff40ff40ff40ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x407b40ff40ff40f1;
+ *((unsigned long *)&__m256i_result[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_result[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_result[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_result[0]) = 0xbf84bf00bf00bf0e;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000033;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffbdff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xa000a0009f80ffcc;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffbdff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xa000a0009f80ffcc;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_op0[0]) = 0x9090909090909090;
+ *((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]) = 0x6f6f6f6f6f6f6f6f;
+ *((unsigned long *)&__m256i_result[2]) = 0x6f6f6f6f6f6f6f6f;
+ *((unsigned long *)&__m256i_result[1]) = 0x6f6f6f6f6f6f6f6f;
+ *((unsigned long *)&__m256i_result[0]) = 0x6f6f6f6f6f6f6f6f;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000300030000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffc000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000300030000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffc000;
+ __m256i_out = __lasx_xvnor_v (__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]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x800fffffffffffff;
+ __m256i_out = __lasx_xvnor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnori.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnori.c
new file mode 100644
index 0000000..995a34c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvnori.c
@@ -0,0 +1,152 @@
+/* { 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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[0]) = 0x45c5c5c545c5c5c5;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007773;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003373;
+ *((unsigned long *)&__m256i_result[3]) = 0xbbbbbbbbbbbbbbbb;
+ *((unsigned long *)&__m256i_result[2]) = 0xbbbbbbbbbbbb8888;
+ *((unsigned long *)&__m256i_result[1]) = 0xbbbbbbbbbbbbbbbb;
+ *((unsigned long *)&__m256i_result[0]) = 0xbbbbbbbbbbbb8888;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x44);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f7f7f7f7f7;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xdededededededede;
+ *((unsigned long *)&__m256i_result[2]) = 0xdededededededede;
+ *((unsigned long *)&__m256i_result[1]) = 0xdededededededede;
+ *((unsigned long *)&__m256i_result[0]) = 0xdededededededede;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x33);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[2]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[1]) = 0x9090909090909090;
+ *((unsigned long *)&__m256i_result[0]) = 0x9090909090909090;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x6f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0xf7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x5858585858585858;
+ *((unsigned long *)&__m256i_result[2]) = 0x5858585858585858;
+ *((unsigned long *)&__m256i_result[1]) = 0x5858585858585858;
+ *((unsigned long *)&__m256i_result[0]) = 0x5858585858585858;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0xa7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[0]) = 0x3d3d3d3d3d3d3d3d;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0xc2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x9d9d9d9d9d9d9d8d;
+ *((unsigned long *)&__m256i_result[2]) = 0x9d9d9d9d9d9d9d9d;
+ *((unsigned long *)&__m256i_result[1]) = 0x9d9d9d9d9d9d9d8d;
+ *((unsigned long *)&__m256i_result[0]) = 0x9d9d9d9d9d9d9d9d;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x62);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[2]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[1]) = 0x2a2a2a2a2a2a2a2a;
+ *((unsigned long *)&__m256i_result[0]) = 0x2a2a2a2a2a2a2a2a;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0xd5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000812000008120;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000812000008120;
+ *((unsigned long *)&__m256i_result[3]) = 0xe9e968c9e9e968c1;
+ *((unsigned long *)&__m256i_result[2]) = 0xe9e968c9e9e968c9;
+ *((unsigned long *)&__m256i_result[1]) = 0xe9e968c9e9e968c1;
+ *((unsigned long *)&__m256i_result[0]) = 0xe9e968c9e9e968c9;
+ __m256i_out = __lasx_xvnori_b (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvor.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvor.c
new file mode 100644
index 0000000..27eef71
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvor.c
@@ -0,0 +1,215 @@
+/* { 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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff01fd7fff7fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fff7fff7fff;
+ *((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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff01fd7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff7fff7fff;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000005e02;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000089;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001e0007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fe37fff001fffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fe37fff001fffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fffffff;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x003f60041f636003;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1fff1fff1fff1;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_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]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080ff800080ff;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff80007fff0000;
+ __m256i_out = __lasx_xvor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvori.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvori.c
new file mode 100644
index 0000000..ee91af9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvori.c
@@ -0,0 +1,141 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6c6c6c6c6c6c6c6c;
+ *((unsigned long *)&__m256i_result[2]) = 0x6c6c6c6c6c6c6c6c;
+ *((unsigned long *)&__m256i_result[1]) = 0x6c6c6c6c6c6c6c6c;
+ *((unsigned long *)&__m256i_result[0]) = 0x6c6c6c6c6c6c6c6c;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x6c);
+ 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]) = 0xffffff00fffffff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x9f9f9f9f9f9f9f9f;
+ *((unsigned long *)&__m256i_result[2]) = 0x9f9f9f9fffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x9f9f9f9f9f9f9f9f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff9fffffffff;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x9f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffbdff3cffbdff44;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffbdff3cffbdff44;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff7effffff46;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff7effffff46;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x42);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[1]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[0]) = 0xbfbfbfbfbfbfbfbf;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0xbf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x2c2c2c2c2c2c2c2c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x2c2c2c2c2c2c2c2c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_result[2]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_result[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_result[0]) = 0x5252525252525252;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x52);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fe363637fe36363;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fe363637fe36363;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x63);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefeffe0e0e0;
+ *((unsigned long *)&__m256i_result[1]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefeffe0e0e0;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0xe0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_result[2]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_result[1]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_result[0]) = 0x6b6b6b6b6b6b6b6b;
+ __m256i_out = __lasx_xvori_b (__m256i_op0, 0x6b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvorn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvorn.c
new file mode 100644
index 0000000..fa6cdff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvorn.c
@@ -0,0 +1,245 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbf28b0686066be60;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x40d74f979f99419f;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01480000052801a2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffdcff64;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff9fffffffbffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffdaaaaffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff9fffffffbffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffdaaaaffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000175e0000490d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000236200005111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000175e0000490d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffddffdeffb5ff8d;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffdfffffffdffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffddffdeffb5ff8d;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00feffff00fe81;
+ *((unsigned long *)&__m256i_result[2]) = 0xfe01fe51ff00ff40;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00feffff00fe81;
+ *((unsigned long *)&__m256i_result[0]) = 0xfe01fe51ff00ff40;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0df9f8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0df9f8e;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe0df9f8f;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe0df9f8f;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff7fffffff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff7fffffff7fff;
+ __m256i_out = __lasx_xvorn_v (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvorn_v (__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]) = 0xdf80df80df80dfff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffdf80dfff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x498100814843ffe1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4981008168410001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x498100814843ffe1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4981008168410001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff896099cbdbfff1;
+ *((unsigned long *)&__m256i_result[2]) = 0xc987ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff896099cbdbfff1;
+ *((unsigned long *)&__m256i_result[0]) = 0xc987ffffffffffff;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffeffff97a1;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffdf5b000041b0;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffeffff97a1;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffdf5b000041b0;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_result[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_result[0]) = 0x000020a4ffffbe4f;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0xffbffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_result[1]) = 0xffbffffffffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffa;
+ __m256i_out = __lasx_xvorn_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
new file mode 100644
index 0000000..33b96d6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
@@ -0,0 +1,501 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x81f7f2599f0509c2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x51136d3c78388916;
+ *((unsigned long *)&__m256i_op1[3]) = 0x044819410d87e69a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x21d3905ae3e93be0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x5125883a30da0f20;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6d7b2d3ac2777aeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x000019410000e69a;
+ *((unsigned long *)&__m256i_result[2]) = 0xf259905a09c23be0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000883a00000f20;
+ *((unsigned long *)&__m256i_result[0]) = 0x6d3c2d3a89167aeb;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4f7fffbf0000fe00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000004f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4f7fffe64f7fffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffbf0000fe000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe020000fe22;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe6fe42ffc00000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00550000ffab0001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00550000ffab0001;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000400000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000000;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01fe01fe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01fe00000000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ffffffffff;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000089;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0080010000800100;
+ *((unsigned long *)&__m256i_result[2]) = 0x00c0000000c00000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080010000800100;
+ *((unsigned long *)&__m256i_result[0]) = 0x00c0000000c00000;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000001fdfffffe02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001fefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff01fefffeff02;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fd00ffff02ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001fffeff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff02ff;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8011ffee804c004c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00faff0500c3ff3c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80f900f980780078;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0057ffa800ceff31;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffee0000004c0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff050000ff3c0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f9000000780000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffa80000ff310000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001d0000001d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001d0000001d00;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe000000000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x6);
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ff890000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff790000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ff890000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff790000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff790000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff790000;
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x41dffbffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff00ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x41dffbffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff00ff800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfbff0000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe700000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe7007b007e;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe700000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe7007b007e;
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0003fffc0803fff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc0803fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffc0000fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffc0000fff8;
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
new file mode 100644
index 0000000..cdd20e8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
@@ -0,0 +1,575 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f057f0b7f5b007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7fff7fff7fff00;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff0fff005f0f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff0fff005f0f;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff000607f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010017e7d1;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff000607f7;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001001807f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002555500000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000005400;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000005400;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000007fff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000007fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007fff8000ffff0;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff00ff00ff00;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f0000000f000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000022be22be;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fffa2bea2be;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000022be22be;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fffa2bea2be;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff10000fff10000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1000000000000;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff0000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff0000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000555500005555;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000555500005555;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000555500005555;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000555500005555;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000fff80000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fff80000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fff80000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff80000;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff00007fff;
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c
new file mode 100644
index 0000000..d2e742e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c
@@ -0,0 +1,526 @@
+/* { 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]) = 0x639c3fffb5dffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb8c7800094400001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000e000c000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0009000100040001;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004000400040805;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000400040805;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004000400040805;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000400040805;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008000800000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0806050008060500;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000800000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000000100;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ 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]) = 0x00000000002e2100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000040002;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1000000000000000;
+ *((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_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x34000000fff00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff6e00000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3380000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x363c0000fff3c000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000030000000c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000500000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000010;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00c100c100c100c1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00c100c100c100c1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080800000808;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808080808;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[2]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100000100000001;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000020;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000001555;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000015554001c003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000001555;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000015554001c003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000304;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000030401010202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000304;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000030401010202;
+ __m256i_out = __lasx_xvpcnt_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000a0008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000a0008;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000030000;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000040000001b;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000040000001b;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000b000b000b000b;
+ __m256i_out = __lasx_xvpcnt_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001f00000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001f00000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001200000012;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ 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_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvpcnt_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
new file mode 100644
index 0000000..66faa74
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffff90ffffff81;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffff90ffffff81;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000007f;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffe81;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe81;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001341c4000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000310000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000033e87ef1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002e2100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000011c00;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000e8f1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000103100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000002e00;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000004290;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004290;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000004290;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004290;
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xbfbfbfbfbfbfbfbf;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op1[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_op1[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op1[0]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202031;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202031;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0xd0d8eecf383fdf0d;
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdfc2ff20df80ffa7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdfc2ff20df80ffa7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x80208020c22080a7;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x80208020c22080a7;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op1[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op1[0]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xe07de0801f20607a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xe07de0801f20607a;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000800080010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000800080010000;
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff9fffffff9;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ffffd8020010001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff9fffffff9;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000060002000a;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000060002000a;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
new file mode 100644
index 0000000..a977880
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003f8040002f607;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002728b00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffff328dfff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6651bfff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003f8040002f607;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffff328dfff;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00200020ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x1e0000001e000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00200020ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x1e0000001e000000;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00800080ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00800080ffffffff;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000040004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0400040004000400;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff017e00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e00ff017e01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff017e00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xb70012c4b714fc1e;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff017e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe02b71c199d;
+ *((unsigned long *)&__m256i_result[0]) = 0x017e017e00ff017e;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc080ffff0049ffd2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0049ffd2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffeffb9ff9d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01620133004b0032;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffb7ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00010000002fff9e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffb5ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_result[3]) = 0xc080ffff0049ffd2;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffeffb9ff9d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00010000002fff9e;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xbabababababababa;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8787878a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3fc6c68787;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f87870000;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fff003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fff003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007fff;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000002467db99;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003e143852;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000002467db99;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003e143852;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000044444443;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7bbbbbbbf7777778;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000246700003e14;
+ *((unsigned long *)&__m256i_result[2]) = 0x000044447bbbf777;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000246700003e14;
+ *((unsigned long *)&__m256i_result[0]) = 0x000044447bbbf777;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0006000000020000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0006000000020000;
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xbff00000bff00000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xbff00000bff00000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ff87f7f7f807f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87f7f7f807f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffe98;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe98;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f00000000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
new file mode 100644
index 0000000..a2edbb8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
@@ -0,0 +1,130 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x010180068080fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe01f000010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000c40086;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff820002ff820002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff820002ff820002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200020002;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
new file mode 100644
index 0000000..8bd3a82
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
@@ -0,0 +1,388 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0cc08723ff900001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xcc9b89f2f6cef440;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x7);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ int_result = 0x000000000000ffff;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
+ int_result = 0x000000000000007f;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefdfffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000fffffefd;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5555555580000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5555555580000000;
+ int_result = 0x0000000055555555;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002000400000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000200020006;
+ unsigned_int_result = 0x0000000000020006;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff8000000000000;
+ long_int_result = 0x1f0fdf7f3e3b31d4;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe01fc01fe01fc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x012c002c001c0006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe01fc01fe0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x012c002c001c000a;
+ long_int_result = 0xfe01fc01fe0000;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ unsigned_long_int_result = 0x00000000ffffffff;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_out, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ long_int_result = 0x00000000ffff0100;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ int_result = 0x000000007ff00000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ unsigned_long_int_result = 0x00000000ffffffff;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0xffffffffffffffff;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff0100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff0100000001;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x7);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff0008;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ long_int_result = 0x000000000000ffff;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010001000100010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010001000100010;
+ unsigned_int_result = 0x0000000000100010;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000100040;
+ unsigned_int_result = 0x0000000000000040;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x6);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ long_int_result = 0xffffffffffffffff;
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ unsigned_int_result = 0x00000000ffffffff;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ unsigned_int_result = 0x00000000ffffffff;
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffd880;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffd880;
+ int_result = 0x0000000000000000;
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvprem.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvprem.c
new file mode 100644
index 0000000..9346f9b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvprem.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpremi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpremi.c
new file mode 100644
index 0000000..9346f9b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpremi.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
new file mode 100644
index 0000000..81456bc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
@@ -0,0 +1,380 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ int_op0 = 0x0000001b3c4c0a5c;
+ *((unsigned long *)&__m256i_result[3]) = 0x3c4c0a5c3c4c0a5c;
+ *((unsigned long *)&__m256i_result[2]) = 0x3c4c0a5c3c4c0a5c;
+ *((unsigned long *)&__m256i_result[1]) = 0x3c4c0a5c3c4c0a5c;
+ *((unsigned long *)&__m256i_result[0]) = 0x3c4c0a5c3c4c0a5c;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000397541c58;
+ *((unsigned long *)&__m256i_result[3]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_result[2]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_result[1]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_result[0]) = 0x97541c5897541c58;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_result[0]) = 0x0400040004000400;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000084;
+ *((unsigned long *)&__m256i_result[3]) = 0x0084008400840084;
+ *((unsigned long *)&__m256i_result[2]) = 0x0084008400840084;
+ *((unsigned long *)&__m256i_result[1]) = 0x0084008400840084;
+ *((unsigned long *)&__m256i_result[0]) = 0x0084008400840084;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000020202020;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020006;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ long_op0 = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000020006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020006;
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ int_op0 = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
new file mode 100644
index 0000000..7aa76c2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
@@ -0,0 +1,536 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000001b3c4c0a5c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffefb;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ int_op1 = 0x0000000059815d00;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
+ int_op1 = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[0]) = 0x555555ab555555ab;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000012e2110;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ int_op1 = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[2]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[0]) = 0x003f003f003f003f;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f003f003f003f;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[2]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[0]) = 0x003f003f003f003f;
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003f0000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe161616161614e60;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_result[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_result[1]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_result[0]) = 0xe161616161614e60;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ int_op1 = 0x00000000000000ac;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00d5007f00ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00d5007f00ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202020;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffff7fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffff7fffff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc192181230000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc192181230000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff00ff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff00ff;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fef7fef7fef7fef;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff00ffffffff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff0000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f010700c70106;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f010700c70106;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_result[2]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_result[1]) = 0x0106010601060106;
+ *((unsigned long *)&__m256i_result[0]) = 0x0106010601060106;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003fff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000404;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[0]) = 0x0404040404040404;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000202;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000202;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x000000003ddc5dac;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000002;
+ int_op1 = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
new file mode 100644
index 0000000..a2bc2da
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
@@ -0,0 +1,471 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffeffffff88;
+ *((unsigned long *)&__m256i_op0[2]) = 0x61e0000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffeffffff88;
+ *((unsigned long *)&__m256i_op0[0]) = 0x61e0000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff80fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xd52aaaaa555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff80fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xd52aaaaa555555ab;
+ *((unsigned long *)&__m256i_result[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[0]) = 0x555555ab555555ab;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fff3fff3fff3fff;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000001;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007fd00000f02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fffeff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff02ff;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfc00ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfc00ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00fe00fe00fe00fe;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe20001dfe1f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[3]) = 0x047a047a047a047a;
+ *((unsigned long *)&__m256i_result[2]) = 0x047a047a047a047a;
+ *((unsigned long *)&__m256i_result[1]) = 0x047a047a047a047a;
+ *((unsigned long *)&__m256i_result[0]) = 0x047a047a047a047a;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x037fe01f001fe020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x037fe01f001fe020;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0d0d0d0d0d;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[3]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202010202020102;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x800080ff800080ff;
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff97a2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff97a2;
+ *((unsigned long *)&__m256i_result[3]) = 0x97a297a297a297a2;
+ *((unsigned long *)&__m256i_result[2]) = 0x97a297a297a297a2;
+ *((unsigned long *)&__m256i_result[1]) = 0x97a297a297a297a2;
+ *((unsigned long *)&__m256i_result[0]) = 0x97a297a297a297a2;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
new file mode 100644
index 0000000..9346f9b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotr.c
new file mode 100644
index 0000000..21446e5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotr.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff0001ff02;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff020afefc;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000003fefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffefff7fff7;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7ffffffbfffb;
+ __m256i_out = __lasx_xvrotr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff0001ff02;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff020afefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000003fefd;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff0001ff04;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff02a0fefc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000cfefd;
+ __m256i_out = __lasx_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff01ff010000fff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff19;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff02ff020001fffa;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000100010001fffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x807f807f00000380;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007380;
+ *((unsigned long *)&__m256i_result[1]) = 0xc03fc03f000001c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001c0;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffe40;
+ __m256i_out = __lasx_xvrotr_d (__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]) = 0x7f7f7f7f7f7f7f7f;
+ *((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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_h (__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]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000fedd;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000fedd;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000fedd;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000fedd;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvrotr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x805f0000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x80be0000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x80be0000ffffffff;
+ __m256i_out = __lasx_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000f0;
+ *((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]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff457d607f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000457d607d;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff457d607f;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07ffffff07ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07ffffff07ffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x07ffffff07ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x07ffffff07ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0ffffffe0ffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ffffffe0ffffffe;
+ __m256i_out = __lasx_xvrotr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_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]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[0]) = 0x001fc0200060047a;
+ __m256i_out = __lasx_xvrotr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x381800007af80000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x381800007af80000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_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]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000086fe0000403e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000403e00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001bfa000000f9;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000f900004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001bfa000000f9;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000f900004040;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0607ffff0607;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f9f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000faf3f3f2;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0607ffff0383;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0607ffffc0c1;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0607ffff0383;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0607ffffc0c1;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvrotr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007f433c79;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f433c79;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007f8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007f8000;
+ __m256i_out = __lasx_xvrotr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffdfff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffdfff80;
+ __m256i_out = __lasx_xvrotr_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100800000;
+ *((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_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0000;
+ *((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]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotr_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_xvrotr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotri.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotri.c
new file mode 100644
index 0000000..c1b8e17
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvrotri.c
@@ -0,0 +1,394 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbea2e127c046721f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1729c073816edebe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xde91f010000006f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ef1f90efefaf30d;
+ *((unsigned long *)&__m256i_result[3]) = 0x515f93f023600fb9;
+ *((unsigned long *)&__m256i_result[2]) = 0x948b39e0b7405f6f;
+ *((unsigned long *)&__m256i_result[1]) = 0x48ef087800007c83;
+ *((unsigned long *)&__m256i_result[0]) = 0x78af877c7d7f86f9;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f7f7f7f7fff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7f007f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f7f7f7f7fff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[2]) = 0xbfbfbfbfbfff807f;
+ *((unsigned long *)&__m256i_result[1]) = 0xbf803fbfbfbfbfbf;
+ *((unsigned long *)&__m256i_result[0]) = 0xbfbfbfbfbfff807f;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x1);
+ 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_result[3]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x4);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002a54290;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000007f0000007f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000007f0000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff80ff01ff80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff01ff800000007e;
+ *((unsigned long *)&__m256i_result[3]) = 0x003f8000003f8000;
+ *((unsigned long *)&__m256i_result[2]) = 0x003f8000003f8000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc07f80ffc07f80;
+ *((unsigned long *)&__m256i_result[0]) = 0xffc07f80003f0000;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x24);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff6f20;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff6f20;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x4343434343434343;
+ *((unsigned long *)&__m256i_result[2]) = 0x4343434343434343;
+ *((unsigned long *)&__m256i_result[1]) = 0x4343434343434343;
+ *((unsigned long *)&__m256i_result[0]) = 0x4343434343434343;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x38);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffdffd;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffdffd;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffdffd;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffdffd;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000f0000000f000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f0000000f000;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000007fc00000400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000040000000400;
+ *((unsigned long *)&__m256i_result[1]) = 0x000007fc00000400;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000040000000400;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_w (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00f7000000f70006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00f7000000f70006;
+ __m256i_out = __lasx_xvrotri_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_d (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffbfffffffb;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffbfffffffb;
+ __m256i_out = __lasx_xvrotri_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c
new file mode 100644
index 0000000..2a4f29b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c
@@ -0,0 +1,650 @@
+/* { 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]) = 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_xvsadd_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_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x003f003f003f003f;
+ *((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]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsadd_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]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op1[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_op1[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_op1[0]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_result[3]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0xa020202020206431;
+ *((unsigned long *)&__m256i_result[1]) = 0xa020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0xa020202020206431;
+ __m256i_out = __lasx_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffa80000ff31;
+ *((unsigned long *)&__m256i_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]) = 0x0000ffee0000ff4c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff050000ff3c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fff90000ff78;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffa80000ff31;
+ __m256i_out = __lasx_xvsadd_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]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff810011;
+ __m256i_out = __lasx_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000200000008;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000200000008;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff8000;
+ *((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]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7efefefe80ffffff;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007fe000007fe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007fde00007fd4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fe000007fe0;
+ *((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]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff7edfffff7edf;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff7eddffff7ed3;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff7edfffff7edf;
+ __m256i_out = __lasx_xvsadd_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffc81aca;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003a0a9512;
+ *((unsigned long *)&__m256i_op0[1]) = 0x280ac9da313863f4;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe032c739adcc6bbd;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffdffffffc81aca;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff3a0b9512;
+ *((unsigned long *)&__m256i_result[1]) = 0x280bc9db313a63f5;
+ *((unsigned long *)&__m256i_result[0]) = 0xe032c738adcb6bbb;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_h (__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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1fe01e0100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x1fe01e0100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsadd_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]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffffa;
+ __m256i_out = __lasx_xvsadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf800d0d8ffffeecf;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000383fffffdf0d;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf000f000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf000f000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xe800c0d8fffeeece;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff383efffedf0c;
+ *((unsigned long *)&__m256i_result[1]) = 0xe800c0d8fffeeece;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff383efffedf0c;
+ __m256i_out = __lasx_xvsadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0001;
+ *((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]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe0000fffe0002;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe0000fffe0002;
+ __m256i_out = __lasx_xvsadd_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]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[0]) = 0x7575757575757575;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsadd_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]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fc00fc00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fc00fc00;
+ *((unsigned long *)&__m256i_result[3]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fc00fc00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fc00fc00;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_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_xvsadd_h (__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]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvsadd_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000007b00f9007e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000007b00f9007e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000007b00f9007e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000007b00f9007e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000f601f200fc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000f601f200fc;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000007f00000022;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000007f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007f00000022;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f00000000;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_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]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_result[0]) = 0x1c1b1a191c1b1a19;
+ __m256i_out = __lasx_xvsadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffb7ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00010000002fff9e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffb5ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_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]) = 0x0002ff80ffb70000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffb7ff80ffd0ffd8;
+ *((unsigned long *)&__m256i_result[1]) = 0x00010000002fff9e;
+ *((unsigned long *)&__m256i_result[0]) = 0xffb5ff80ffd0ffd8;
+ __m256i_out = __lasx_xvsadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvsadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvsadd_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000807e7ffe;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[2]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[0]) = 0xc2c2c2c2c2c2c2c2;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_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]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[3]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87ef07f7f817f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f807f007f7f817f;
+ __m256i_out = __lasx_xvadd_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_xvadd_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]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0020001d001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000006040190d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000006040190d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800200028;
+ __m256i_out = __lasx_xvadd_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvadd_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvadd_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-xvsadd-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c
new file mode 100644
index 0000000..a3afc98
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c
@@ -0,0 +1,350 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001700080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001700080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001700080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001700080;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_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_xvsadd_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsadd_bu (__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]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsadd_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7f7f7f7f7f7f7f7;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000200000000;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_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_xvsadd_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43e019c657c7d050;
+ *((unsigned long *)&__m256i_op1[3]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43e019c657c7d050;
+ *((unsigned long *)&__m256i_result[3]) = 0x86ff76ffff4eff42;
+ *((unsigned long *)&__m256i_result[2]) = 0x86ffffffffff9eff;
+ *((unsigned long *)&__m256i_result[1]) = 0x86ff76ffff4effff;
+ *((unsigned long *)&__m256i_result[0]) = 0x86ff32ffaeffffa0;
+ __m256i_out = __lasx_xvsadd_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]) = 0xffff8910ffff7e01;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff3573ffff8960;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff8910ffff1ca9;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffff5e5ffff8130;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff8910ffff7e01;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff3573ffff8960;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff8910ffff1ca9;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff5e5ffff8130;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000f90;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_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_xvsadd_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffe200000020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fffe00008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffe200000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fffe00008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[3]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_result[2]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_result[1]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_result[0]) = 0x7575ffff7575f575;
+ __m256i_out = __lasx_xvsadd_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]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000f0f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000f0f0;
+ __m256i_out = __lasx_xvsadd_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]) = 0x0000000000001400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000001400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000003c01ff9;
+ __m256i_out = __lasx_xvsadd_hu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[0]) = 0x45c5c5c545c5c5c5;
+ __m256i_out = __lasx_xvsadd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvsadd_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]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000080;
+ __m256i_out = __lasx_xvsadd_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsadd_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_xvsadd_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c
new file mode 100644
index 0000000..b4ac502
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c
@@ -0,0 +1,537 @@
+/* { 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]) = 0x8000800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000800080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc9d8080067f50020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc70000020000c000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf000f00000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000f000f0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf0f008000ff5000f;
+ *((unsigned long *)&__m256i_result[0]) = 0xf00000020000f000;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x4);
+ 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_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000e000e000e000e;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x6);
+ 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_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003fea00013fec;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fe50001c013;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003fea00013fec;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fe50001c013;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff0000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff0000ff00;
+ __m256i_out = __lasx_xvsat_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000399400003994;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000fff00000fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000fff00000fff;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_result[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffc0ffc0ffc0ffc0;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00002df900001700;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffe05ffffe911;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00002df900001700;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffe05ffffe911;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffcfffffffc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffcfffffffc;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffdd97dc4;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffdd97dc4;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffdd97dc4;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffdd97dc4;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f007f007f;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000003fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000003fffff;
+ __m256i_out = __lasx_xvsat_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000200000022;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0049004200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007f00000022;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f00000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffefffffefd;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_result[3]) = 0x007fffff007fffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x007fffff007fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x007fffff007fffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x007fffff007fffff;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ffff0001ffff;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000080000001000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000080000001000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000f0000000f;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_result[3]) = 0x000007ff000007ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000007fffffff800;
+ *((unsigned long *)&__m256i_result[1]) = 0x000007ff000007ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000007fffffff800;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[2]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[1]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[0]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffc00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffc00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffc00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffc00000000;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff605a;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001175f10e4330e8;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff8f0842ff29211e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffff8d9ffa7103d;
+ *((unsigned long *)&__m256i_result[3]) = 0x001175f10e4330e8;
+ *((unsigned long *)&__m256i_result[2]) = 0xff8f0842ff29211e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff8d9ffa7103d;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x39);
+ 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_result[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe000000000000;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x31);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001ffffffff;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fffffffffffffff;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x3c);
+ 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_result[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff8;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000002c21ffeff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc0000000c0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000002c21ffeff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc0000000c0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff8;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_d (__m256i_op0, 0x32);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c
new file mode 100644
index 0000000..e5ee89d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c
@@ -0,0 +1,427 @@
+/* { 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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_result[2]) = 0x3f3f3f3f3f3f3f3f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000003f3f3f3f;
+ *((unsigned long *)&__m256i_result[0]) = 0x3f3f3f3f00000000;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000017f7f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000017f7f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f00000000000000;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007ffff0007ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0007ffff0007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x00071f1f00071f1f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x00071f1f00071f1f;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvsat_bu (__m256i_op0, 0x6);
+ 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_result[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000003fff3fff;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0xd);
+ 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_result[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x001f001f001f001f;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001fff00001fff;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000003f003f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000003f003f;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc0090000c0200060;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc0090000c0200060;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f0000007f0060;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op0[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op0[0]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0003000300030000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0003000300030000;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000203ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001ff03ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000203ff;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_hu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x5);
+ 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_result[3]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000f0000000f;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe000000000;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffcfffc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffcfffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffcfffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003fff;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fffffff0fffffff;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe000ffffffff08;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe000ffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe000ffffffff08;
+ *((unsigned long *)&__m256i_result[3]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fffffff0fffffff;
+ __m256i_out = __lasx_xvsat_wu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000003ffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000003ffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000003ffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000003ffffffffff;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x29);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x34);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x30);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x419cd5b11c3c5654;
+ *((unsigned long *)&__m256i_result[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_result[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_result[0]) = 0x419cd5b11c3c5654;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000001ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000001ff;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007fffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007fffff;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000017f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007f7f03030000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000017f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f03030000;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x37);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsat_du (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseq.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseq.c
new file mode 100644
index 0000000..2a42386
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseq.c
@@ -0,0 +1,650 @@
+/* { 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]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fffffffffffe;
+ *((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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f0000007f000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f0000007f000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ffff00ff000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((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_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcf800fffcf800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_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_xvseq_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]) = 0xffffff00fffffff0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff00fffffff0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((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_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe161616161614e60;
+ *((unsigned long *)&__m256i_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_xvseq_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]) = 0x000000005be55bd2;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007dfdff4b;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvseq_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00010003;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ffffff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ff00ff00;
+ __m256i_out = __lasx_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3fc03f803fc040c0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3fc03f803fc040c0;
+ *((unsigned long *)&__m256i_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_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffee0000004c0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff050000ff3c0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00f9000000780000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffa80000ff310000;
+ *((unsigned long *)&__m256i_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_xvseq_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]) = 0x8011ffee804c004c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00faff0500c3ff3c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x80f900f980780078;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0057ffa800ceff31;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff000000ff000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff000000ff000000;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_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]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_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_xvseq_w (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f60041f636003;
+ *((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]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0x0000005500000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001005500020000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000005500000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001005500020000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_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_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvseq_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((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_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffefff7f00100080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffefff7f00100080;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff00ffffffff;
+ __m256i_out = __lasx_xvseq_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_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]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0080000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080000000000000;
+ *((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_xvseq_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000501ffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000701ffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000501ffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000701ffffce;
+ *((unsigned long *)&__m256i_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_xvseq_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000260a378;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000d02317;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000260a378;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000d02317;
+ *((unsigned long *)&__m256i_op1[3]) = 0x003f020001400200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x003f00ff003f00c4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x003f020001400200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x003f00ff003f00c4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseq_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseqi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseqi.c
new file mode 100644
index 0000000..5478d19
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvseqi.c
@@ -0,0 +1,449 @@
+/* { 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]) = 0xfffffffffffffdfe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffdfe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[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_xvseqi_h (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op0[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_xvseqi_w (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00197d3200197d56;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00197d3200197d56;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_h (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000bdfef907bc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000bdfef907bc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -14);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_b (__m256i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1fa0000000080000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_d (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x800fffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvseqi_w (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
new file mode 100644
index 0000000..c8a00ca
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
@@ -0,0 +1,430 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007ffffffff7ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x49d8080067f4f81f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f00fffff7ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xd8490849f467f867;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xb7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xdb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x95);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff5ffff4738;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff5ffff4738;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xee);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x6f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007ffffffff7ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x49d8080067f4f81f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7ffff7ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x080008000800f81f;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xa8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_result[2]) = 0xc5c545c545c545c5;
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_result[0]) = 0xc5c545c545c545c5;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xf7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0000;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xa7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xdc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff8001ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8001ffff8001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8001ffff8001;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x6e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x9f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002ffff00020002;
+ *((unsigned long *)&__m256i_result[2]) = 0x04f504f104f504f5;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002ffff00020002;
+ *((unsigned long *)&__m256i_result[0]) = 0x04f504f104f504f5;
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x65);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1e18000000000000;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xfe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x64);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_result[0]) = 0x45c5c5c545c5c5c5;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xb0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000f9f900;
+ *((unsigned long *)&__m256i_op0[2]) = 0x79f9f9f900f9f9e0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000f9f900;
+ *((unsigned long *)&__m256i_op0[0]) = 0x79f9f9f900f9f900;
+ *((unsigned long *)&__m256i_result[3]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_result[2]) = 0x79f9f9f900000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_result[0]) = 0x79f9f9f900000000;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x97);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007aff7c00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffd017d00;
+ *((unsigned long *)&__m256i_result[3]) = 0x7aff7c0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfd017d0000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7aff7c0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfd017d0000000000;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xb3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_result[3]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_result[2]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_result[1]) = 0xc3f0c3f0c3f0c3f0;
+ *((unsigned long *)&__m256i_result[0]) = 0xc3f0c3f0c3f0c3f0;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xf4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_result[3]) = 0xff81ff7dffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_result[1]) = 0xff81ff7dffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff81ff7d;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x28);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000020ff790020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000020ff790020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xa5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010183f95466;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01010101d58efe94;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010183f95466;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x01010101d58efe94;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xa7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xd9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001fff00001fff;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff80be0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000f0f0002;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff80be0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000f1002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x80000000ff800000;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xdb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ef878780000009;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x36);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_result[2]) = 0x04f104f104f504ed;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_result[0]) = 0x04f104f104f504ed;
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
new file mode 100644
index 0000000..641ea23
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
@@ -0,0 +1,761 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000007070707;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0102040000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000020100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0703020000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe02fe02fee5fe22;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff49fe4200000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffffff8fc000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfafafafafafafafa;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000fefefe;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x67eee33567eee435;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x67eee33567eee435;
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op1[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7575ffff75757595;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op2[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op2[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op2[0]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_result[3]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[2]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[1]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[0]) = 0xf800f800f800f800;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000ffff88ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff88ff88ff880000;
+ __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_op1[3]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[2]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[1]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op1[0]) = 0x98111cca98111cca;
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_op2[1]) = 0x000000010000ffe1;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000101001e18;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80008000b3e8fef1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80008000802ea100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000012e2110;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x012e2110012e2110;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000082a54290;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000028aa700;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000082a54290;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54287;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000007fc00000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fc00000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fc00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fc00000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xdfffffffdfffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0xdfffffffdfffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000500040005;
+ __m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffffe01fe52;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff01ff02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffffe01fe52;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff01ff02;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000080008001;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff800000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff800000ff;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000080040;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffeb8649d0d6250;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffeb8649d0d6250;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op2[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op2[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c
new file mode 100644
index 0000000..2a6eee0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c
@@ -0,0 +1,665 @@
+/* { 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]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[2]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[1]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op0[0]) = 0x97541c5897541c58;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff605a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000000000000;
+ __m256i_out = __lasx_xvsigncov_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_xvsigncov_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_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_xvsigncov_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsigncov_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_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_xvsigncov_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_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0202810102020202;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0202810102020202;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fefe0000fefe;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff0000fefe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fefe0000fefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff0000fefe;
+ __m256i_out = __lasx_xvsigncov_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_xvsigncov_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000017547fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000017547fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x807e80fd80fe80fd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80938013800d8002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x807e80fd80fe0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80938013800d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000801380f380fe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000801380f300fb;
+ __m256i_out = __lasx_xvsigncov_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]) = 0x00000000fffd5a98;
+ *((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]) = 0x000000000101ff01;
+ __m256i_out = __lasx_xvsigncov_b (__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]) = 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_xvsigncov_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_xvsigncov_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]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsigncov_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff80ff00ff80ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff80ff00ff80ff01;
+ __m256i_out = __lasx_xvsigncov_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_xvsigncov_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]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fd;
+ __m256i_out = __lasx_xvsigncov_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8011ffee804c004c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00faff0500c3ff3c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80f900f980780078;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0057ffa800ceff31;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff000000010000;
+ __m256i_out = __lasx_xvsigncov_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3880800037800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3901000039010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3880800037800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3901000039010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fc00000428a;
+ __m256i_out = __lasx_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffeffee;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe0000fffe0012;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000001ffff;
+ __m256i_out = __lasx_xvsigncov_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80be0000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80be0000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000100000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff00000000;
+ __m256i_out = __lasx_xvsigncov_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_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_result[3]) = 0x2080208020802080;
+ *((unsigned long *)&__m256i_result[2]) = 0x203e208020802079;
+ *((unsigned long *)&__m256i_result[1]) = 0x2080208020802080;
+ *((unsigned long *)&__m256i_result[0]) = 0x203e208020802079;
+ __m256i_out = __lasx_xvsigncov_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffe05f8102;
+ *((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_xvsigncov_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]) = 0x00000000000000ff;
+ *((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_xvsigncov_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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000004e;
+ *((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_xvsigncov_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022beb03f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffa2beb040;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffba8300004fc2;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffba8300004fc2;
+ __m256i_out = __lasx_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x004100df00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00c000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x004100df00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00c000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc1d75053f0000000;
+ __m256i_out = __lasx_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000104000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffa30000165a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000104000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc1d75053f0000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xbe21000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000505300000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xbe21000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000505300000000;
+ __m256i_out = __lasx_xvsigncov_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]) = 0x000001880310877e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000001880310877e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsigncov_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003fff;
+ *((unsigned long *)&__m256i_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_xvsigncov_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000f788f788;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000f788f788;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsigncov_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
+ __m256i_out = __lasx_xvsigncov_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_xvsigncov_d (__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]) = 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_xvsigncov_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]) = 0x00000001faf19b60;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6c2905ae7c14c561;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001faf19b60;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6c2905ae7c14c561;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x94d7fb5200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x94d7fb5200000000;
+ __m256i_out = __lasx_xvsigncov_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]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsigncov_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]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000180;
+ __m256i_out = __lasx_xvsigncov_b (__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]) = 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_xvsigncov_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_xvsigncov_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_xvsigncov_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffc00040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffc00040;
+ __m256i_out = __lasx_xvsigncov_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffdbff980038ffaf;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffafffe80004fff1;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffdbff980038ffaf;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffafffe80004fff1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0002fffc;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000fffd0003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffc;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000fffd0003;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0002fffd;
+ __m256i_out = __lasx_xvsigncov_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-xvsle-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c
new file mode 100644
index 0000000..ed752df
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c
@@ -0,0 +1,575 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000460086;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007f0079;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000f30028;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000df00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbf28b0686066be60;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffff00ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ffffff00ff;
+ __m256i_out = __lasx_xvsle_b (__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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ffffffffffffff;
+ __m256i_out = __lasx_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1b1a191c1b1a19;
+ *((unsigned long *)&__m256i_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_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xb70036db12c4007e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xb7146213fc1e0049;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000fefe02fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb71c413b199d04b5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff00ff00ffff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffff00ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000ff00ff;
+ __m256i_out = __lasx_xvsle_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ffffff00ffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffbfffa0ffffff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffbfffa0ffffff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbfffa004fffd8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbfffa004fffd8000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ffff0000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ffff0000ff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0a0a0a0a00000000;
+ *((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_xvsle_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]) = 0x0000ffff0000ffee;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffee;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffdfff80ffdfff80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffdfff80ffdfff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffdfff80ffdfff80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffdfff80ffdfff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff00;
+ __m256i_out = __lasx_xvsle_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a0a0a7f0a0a0a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0a0a0a0a7f0a0a0a;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fef7fef7fef7fef;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fef7fef7fef7fef;
+ *((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_xvsle_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x2aaaaa85aaaaaa85;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2aaa48f4aaaa48f4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2aaaaa85aaaaaa85;
+ *((unsigned long *)&__m256i_op1[0]) = 0x2aaa48f4aaaa48f4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvsle_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001a00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000900000000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010100005400;
+ *((unsigned long *)&__m256i_op1[3]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff6a9d8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff6a9d8;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00197d3200197d56;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00197d3200197d56;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffe0001fffe0001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ffe0001fffeffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fdfdfe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((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_xvsle_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]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00f7000000f70007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00f7000000f70007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_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_xvsle_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff01fffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01fffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x800080ff800080ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000002d;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc02dc02dc02dc02d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000002d;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc02dc02dc02dc02d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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-xvsle-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-2.c
new file mode 100644
index 0000000..bc98b41
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsle-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]) = 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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7575757575757575;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvsle_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]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5b7f00ff5b7f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5b7f00ff5b7f00ff;
+ *((unsigned long *)&__m256i_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8011ffae800c000c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00baff050083ff3c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80b900b980380038;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0017ffa8008eff31;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff0008;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000003ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000003ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x05ea05ea05ea05ec;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x05ea05ea05ea05ec;
+ *((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_xvsle_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_wu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000feb60000b7d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000feb60000c7eb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000feb60000b7d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000feb60000c7eb;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_wu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb683007ffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c0df5b41cf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb683007ffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c0df5b41cf;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001497c98ea4fca;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001497c98ea4fca;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsle_wu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010201010204;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010102;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00020421d7d41124;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00020421d7d41124;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsle_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]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 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_xvsle_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]) = 0x94d7fb5200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsle_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-xvslei-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c
new file mode 100644
index 0000000..0671780
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000101ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00010013000100fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00010013000100fb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_b (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x014200c200c200ae;
+ *((unsigned long *)&__m256i_op0[2]) = 0x014200c200c200ae;
+ *((unsigned long *)&__m256i_op0[1]) = 0x014200c200c200ae;
+ *((unsigned long *)&__m256i_op0[0]) = 0x014200c200c200ae;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff8900000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff8900000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvslei_h (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000460086;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007f0079;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000f30028;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000df00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfc2f3183ef7ffff7;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_w (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1828f0e09bad7249;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07ffc1b723953cec;
+ *((unsigned long *)&__m256i_op0[1]) = 0x61f2e9b333aab104;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6bf742aa0d7856a0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc6c6c6c68787878a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000003f3f3f3c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8787878a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_d (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c
new file mode 100644
index 0000000..093d564
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c
@@ -0,0 +1,438 @@
+/* { 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]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff00;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04e8296f3c611818;
+ *((unsigned long *)&__m256i_op0[2]) = 0x032eafee29010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x04e8296f3c611818;
+ *((unsigned long *)&__m256i_op0[0]) = 0x032eafee29010000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000ffffff;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0xb);
+ 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_result[3]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslei_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00217f19ffde80e6;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00037f94fffc806b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00217f19ffde80e6;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00037f94fffc806b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x17);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[0]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x1);
+ 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_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_hu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff874dc687870000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x15);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x03802fc000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x03802fc000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_wu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_du (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_op0[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]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_du (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_du (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslei_du (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslei_du (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsll.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsll.c
new file mode 100644
index 0000000..7179e71
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsll.c
@@ -0,0 +1,425 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsll_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]) = 0x00001f41ffffbf00;
+ *((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]) = 0x00001f41ffffbf00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsll_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_xvsll_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe0000000;
+ __m256i_out = __lasx_xvsll_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]) = 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_xvsll_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]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsll_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000fffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000fffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsll_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefefffffefe;
+ *((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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvsll_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff2f7bcfff2f7bd;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff2f93bfff2fff2;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff2f7bcfff2f7bd;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff2f93bfff2fff2;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcf800fffcfffc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffcfffc;
+ __m256i_out = __lasx_xvsll_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff0e400;
+ __m256i_out = __lasx_xvsll_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x5980000000000000;
+ __m256i_out = __lasx_xvsll_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_xvsll_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
+ __m256i_out = __lasx_xvsll_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000200000002;
+ *((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_xvsll_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvsll_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]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000800000000;
+ __m256i_out = __lasx_xvsll_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_xvsll_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfe00000000000000;
+ *((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]) = 0x0000000001ff8000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001ff8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsll_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvsll_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_xvsll_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsll_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsll_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvsll_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00010001000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00010001000100;
+ *((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_xvsll_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_xvsll_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x800000ff800000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x800000ff800000ff;
+ __m256i_out = __lasx_xvsll_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]) = 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_xvsll_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslli.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslli.c
new file mode 100644
index 0000000..003e29b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslli.c
@@ -0,0 +1,416 @@
+/* { 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]) = 0x01fa022a01a401e5;
+ *((unsigned long *)&__m256i_op0[2]) = 0x030d03aa0079029b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x024c01f901950261;
+ *((unsigned long *)&__m256i_op0[0]) = 0x008102c2008a029f;
+ *((unsigned long *)&__m256i_result[3]) = 0x54000000ca000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x5400000036000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf2000000c2000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x840000003e000000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff1001100100000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010100000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff1001100100000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010100000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfcc4004400400000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0040400000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfcc4004400400000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0040400000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffef000004ea;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffef000004ea;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffefffffffef;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffbf4;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_result[3]) = 0xf800f800f800c000;
+ *((unsigned long *)&__m256i_result[2]) = 0xf800f800f800a000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf800f800f800e000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf800f800f800e000;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefefffffefe;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0100010001000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100010001000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1616161616161616;
+ *((unsigned long *)&__m256i_op0[2]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe16167f161616;
+ *((unsigned long *)&__m256i_op0[0]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x2c2c2c2c2c2c2c2c;
+ *((unsigned long *)&__m256i_result[2]) = 0x2c2c2c2cfefefefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefc2c2cfe2c2c2c;
+ *((unsigned long *)&__m256i_result[0]) = 0x2c2c2c2cfefefefe;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[2]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[1]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m256i_result[0]) = 0xf8f8f8f8f8f8f8f8;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1f60000000c00000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1f60000000c00000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x60000000c0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x60000000c0000000;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff80ff80ff80ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff80ff80ff80ff80;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000008000000080;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00080008000801ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00080008000801ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x3);
+ 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_result[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[0]) = 0xf0f0f0f0f0f0f0f0;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x03f0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x03f0000000000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x34);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffff80000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffff80000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefefefefe;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[2]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[1]) = 0xf800f800f800f800;
+ *((unsigned long *)&__m256i_result[0]) = 0xf800f800f800f800;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0404000004040000;
+ __m256i_out = __lasx_xvslli_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000c040c0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000c040c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff000000;
+ __m256i_out = __lasx_xvslli_d (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslli_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c
new file mode 100644
index 0000000..ef3a47d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c
@@ -0,0 +1,339 @@
+/* { 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_result[3]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe0ffe0ffe0ffe0;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000003f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000003f0;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256i_result[2]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256i_result[1]) = 0x0218ff78fc38fc38;
+ *((unsigned long *)&__m256i_result[0]) = 0xfc00000000000048;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff0fff0fff0fc00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff0fff0fff0fc00;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_h_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfc00000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffc00fffffc00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffc00fffffc00;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000a000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000a000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400000004000;
+ __m256i_out = __lasx_xvsllwil_w_h (__m256i_op0, 0xe);
+ 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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0xa);
+ 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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffbf4;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffc;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdbc8000000003fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffbff1ffffbff1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffbff1ffffbff1;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffeffc4000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffeffc4000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffeffc4000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffeffc4000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffe06003fc000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffe06003fc000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000feccfecc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000feccfecc;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fe363637fe36364;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe36364661af18f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fe363637fe36364;
+ *((unsigned long *)&__m256i_result[3]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00001ff8d8d90000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001ff8d8d8c000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00001ff8d8d90000;
+ __m256i_out = __lasx_xvsllwil_d_w (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c
new file mode 100644
index 0000000..76651af
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c
@@ -0,0 +1,350 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256i_result[1]) = 0x03fc03fc03f803f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01fe01fe01fe;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x1);
+ 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_result[3]) = 0x01fc03e000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x01fc03e000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00fe01e000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00fe01e000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x07fee332883f86b0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07fed3c8f7ad28d0;
+ *((unsigned long *)&__m256i_result[3]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_result[2]) = 0x3dc02b400a003400;
+ *((unsigned long *)&__m256i_result[1]) = 0x01c03f8034c03200;
+ *((unsigned long *)&__m256i_result[0]) = 0x3dc02b400a003400;
+ __m256i_out = __lasx_xvsllwil_hu_bu (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00aa000000ac00fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00aa000000ac00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002a80000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0002b0000003f800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002a80000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002b0000003f800;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc1be9e9e9f000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x41d8585858400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1076000016160000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1610000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1076000016160000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1610000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_wu_hu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007f00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x311d73ad3ec2064a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001fc000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000c475ceb40000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fb0819280000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff0000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004040404000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004040404000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000007c8;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00040ff288000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00040ff288000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fff000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000001ffe00000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000001ffe00000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80000000ffc8ff88;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80000000ffc8ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ff91ff100000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ff91ff100000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000008c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000008c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001180000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001180000000;
+ __m256i_out = __lasx_xvsllwil_du_wu (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c
new file mode 100644
index 0000000..ca1f5e9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c
@@ -0,0 +1,455 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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_xvslt_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_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_xvslt_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fc00000428a;
+ *((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]) = 0x0000ff000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvslt_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000002000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000002000;
+ *((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]) = 0x00ff0000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff0000ffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000860601934;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0400040004000400;
+ *((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_xvslt_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_xvslt_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_xvslt_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffffffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_w (__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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022222221;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3dddddddfbbb3bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022222221;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3dddddddfbbb3bbc;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvslt_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000f000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0xf7f8f7f8f7f8f7f8;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7f8f7f8f7f8f7f8;
+ *((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_xvslt_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0df9f8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0df9f8e;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffe0df9f8e;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffe0df9f8e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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_xvslt_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-xvslt-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-2.c
new file mode 100644
index 0000000..6864f5e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslt-2.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]) = 0x1828f0e09bad7249;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07ffc1b723953cec;
+ *((unsigned long *)&__m256i_op0[1]) = 0x61f2e9b333aab104;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6bf742aa0d7856a0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0d41c9a7bdd239a7;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0b025d0ef8fdf987;
+ *((unsigned long *)&__m256i_op1[1]) = 0x002944f92da5a708;
+ *((unsigned long *)&__m256i_op1[0]) = 0x038cf4ea999922ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff0000ffff00ff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff000000ffffff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffffff00ff;
+ __m256i_out = __lasx_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000017000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc06500550055ffab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000017000000080;
+ *((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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdb801b6d0962003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdb8a3109fe0f0024;
+ *((unsigned long *)&__m256i_op0[1]) = 0x9a7f997fff01ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbe632a4f1c3c5653;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000500000005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020202020202031;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2020202020202031;
+ *((unsigned long *)&__m256i_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_xvslt_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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_op1[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007fff0000739c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000040b200002fd4;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007fff0000739c;
+ *((unsigned long *)&__m256i_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_xvslt_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x386000003df80000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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_xvslt_bu (__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_xvslt_hu (__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]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvslt_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_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_xvslt_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]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvslt_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_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_xvslt_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbc74c3d108e05422;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbc1e3e6a5cace67c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbc74c3d108e0544a;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbc18e696a86565f4;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbc74c3d108e05422;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbc1e3e6a5cace67c;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbc74c3d108e0544a;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbc18e696a86565f4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef87878000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef87878000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslt_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001400000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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_xvslt_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000017f00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007f7f03030000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslt_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_xvslt_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_xvslt_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]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000100008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100007fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000003fbfc04;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001fdfe02;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000003fbfc04;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001fdfe02;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_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_xvslt_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslt_du (__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]) = 0x0010511c54440437;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010511c54440437;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslt_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_xvslt_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-xvslti-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c
new file mode 100644
index 0000000..7dd2778
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c
@@ -0,0 +1,548 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_b (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffe06003fc000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe05fc47b400;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffe06003fc000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff02000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff02000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_h (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc58a0a0a07070706;
+ *((unsigned long *)&__m256i_op0[2]) = 0x006b60e4180b0023;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1b39153f334b966a;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf1d75d79efcac002;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff90ff81;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000045000d0005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000045000d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 5);
+ 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_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000047000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000047000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_w (__m256i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x80000000001529c1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80007073cadc3779;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80000000001529c1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80007073cadc3779;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, -15);
+ 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_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_d (__m256i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c
new file mode 100644
index 0000000..d93e431
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c
@@ -0,0 +1,416 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00220021004a007e;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff00ff00ff00;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_bu (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffffffffff;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff5ffff4738;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff5ffff4738;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvslti_hu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000e0e0e0e0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe0e0e0e0e0e0e0e0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x17);
+ 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_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvslti_wu (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007773;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003373;
+ *((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_xvslti_du (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvslti_du (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
new file mode 100644
index 0000000..2bf9ae9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
@@ -0,0 +1,545 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc5890a0a07070707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x006be0e4180b8024;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1b399540334c966c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x71d7dd7aefcac001;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe651bfff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe651bfff;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe0000000;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000030000fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000030000fff3;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff0e400;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffe40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff0e400;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x9cffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9cffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1cfd000000000000;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000017e007ffe02;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e00ff017e00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[2]) = 0x6161616100000018;
+ *((unsigned long *)&__m256i_result[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[0]) = 0x6161616100000018;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f007f0081007f;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01ae00ff00ff;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fe1ffe0ffe1ffe0;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007000700070007;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d20227a78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x132feeabd2d33b38;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000c0300000019a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0c08032100004044;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000265ffa5a6767;
+ *((unsigned long *)&__m256i_result[0]) = 0x0c08032100000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f433c78;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800300000000;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000017fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000017fff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000f00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000f00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
new file mode 100644
index 0000000..a51be89
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
@@ -0,0 +1,504 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x006be0e4180b0024;
+ *((unsigned long *)&__m256i_result[1]) = 0x1b39153f334b166b;
+ *((unsigned long *)&__m256i_result[0]) = 0xf1d7dd7aefcac002;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
+ *((unsigned long *)&__m256i_result[3]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[2]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[1]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[0]) = 0x1555156a1555156a;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000bea20000e127;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000c0460000721f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000de910000f010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000006f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000bea20;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000c0460;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000de910;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff800fffff800;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007f017f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007f017f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fff01800fff0181;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fff01800fff0181;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007ff800007ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007ff800007ff80;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffc00000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000007ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000007ffffffff;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000fef0ff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000fef0ff0;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[0]) = 0x001fc0200060047a;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffe00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffe00000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[3]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[2]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[1]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[0]) = 0x1e9e1e9e1e9e1e9e;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffc0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000900000009;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x761ed60b5d7f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdc9938afafe904f1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x761ed60b5d7f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdc9938afafe904f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x03b0feb002eb0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfee401c5fd7f0027;
+ *((unsigned long *)&__m256i_result[1]) = 0x03b0feb002eb0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfee401c5fd7f0027;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
new file mode 100644
index 0000000..e08934b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
@@ -0,0 +1,455 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000013ffffebd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000013ffffebd8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000807e7ffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8091811081118110;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80a6802680208015;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8091811081110013;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80a6802680200018;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffe0000feff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeff0000007e7f;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000c8;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000440800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000440800;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3d3d3d3d3d3d3d3d;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfc01fc0101fe01dd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfc01fc0101fe01dd;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
new file mode 100644
index 0000000..44c20a9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
@@ -0,0 +1,545 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000003ffffffff;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe1e800002f03988d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe1e800002f03988d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff0f400001781cc4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff0f400001781cc4;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc5c545c545c545c5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc5c545c545c545c5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000ff000000f8;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbc8ff0ffffffcff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000f8;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbc8ff0ffffffcff8;
+ *((unsigned long *)&__m256i_result[3]) = 0xfcfcfcfcfc040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fbfffffc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfcfcfcfcfc040404;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fbfffffc;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x14131211100f0e0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0c0b0a0908070605;
+ *((unsigned long *)&__m256i_op0[1]) = 0x14131211100f0e0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0c0b0a0908070605;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x40);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000242;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000242;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0707feb608c9328b;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc237bd65fc892985;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0707feb608c9328b;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc237bd65fc892985;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_result[3]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_result[2]) = 0x002a0074666a4db9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_result[0]) = 0x002a0074666a4db9;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffdfffffffdff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffdfffffffdff;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x37);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3f7f7f7eff800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3f7f7f7eff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007efeff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007efeff00;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff3e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff3e;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x70);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000200020018;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000200020008;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00c0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0040000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000f0f0003;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000f1003;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fefefe000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fefefe000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000003c;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x45);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00f3009500db00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00f3009500db00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003cc0;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000400100014;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020200000202;
+ *((unsigned long *)&__m256i_result[2]) = 0x4100004141410000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020200000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4100004141410000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000956a00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000956a00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xb500000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xb500000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe00000ffe00000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe00000ffe00000;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_w_d (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_w_d (__m256i_op0, __m256i_op1, 0x34);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffc0;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x6b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000040e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000040e7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000200000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x21);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3ff9fffa3ff9fffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3ff9fffa3ff9fffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007ff3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007ff3;
+ __m256i_out = __lasx_xvsrani_w_d (__m256i_op0, __m256i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
new file mode 100644
index 0000000..fb47385
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
@@ -0,0 +1,725 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x38a966b31be83ee9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5f6108dc25b80001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf41a56e8a20878d7;
+ *((unsigned long *)&__m256i_op0[0]) = 0x683b8b67e20c0001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000501e99b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000109973de7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001020f22;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001890b7a39;
+ *((unsigned long *)&__m256i_result[3]) = 0x38a966b301f41ffd;
+ *((unsigned long *)&__m256i_result[2]) = 0x5f6108ee13ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf41a56e8d10201f6;
+ *((unsigned long *)&__m256i_result[0]) = 0x683b8b34f1020001;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010200000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000070300000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01480000052801a2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffdcff64;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000001010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000001010000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff01ff3400000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff83ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff82037dfd0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[0]) = 0x45baa7ef6a95a985;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000800;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d0000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000001a00;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fefffeff02ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000100;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00feff00000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op1[2]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op1[0]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8e8e8e8e8f0e8e8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8e8e8e8e8f0e8e8e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x8e8e8e8e8f00ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x8e8e8e8e8f00ffff;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001607f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001607f0000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ef878780000009;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00005053000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00005053000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[3]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0060401900000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0060401900000000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040404040;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff1dffffff1dff;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c
new file mode 100644
index 0000000..63ba92e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c
@@ -0,0 +1,471 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x81f7f2599f0509c2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x51136d3c78388916;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffc0fcffffcf83;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000288a00003c1c;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffffffffffe;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001f41ffffbf00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00007dfd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00007dfd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x20fc000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x20fc000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x10fbe1e2e0000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x10fbe1e2e0000002;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000040004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000040004;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff8000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x26);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400000004000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff81007fff0100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff81007fff0100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0003fffc0803fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0003fffc0803fff8;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
new file mode 100644
index 0000000..c145f7f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
@@ -0,0 +1,500 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00080000000cc916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000006fff3;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ffff00ff000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00080005c073c916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100000007fff3;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00050008000e0010;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0007000800100010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00050008000e0010;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0007000800100010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000002affaa;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff002affaa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000002affaa;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffd50055;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x002affaa00000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001f0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007f7f00007f00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007f7f00007fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000007fff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000007fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f00ff00000000;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000abff0000abff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000abff0000abff;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff800000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000070007000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffd03fd040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001010000010100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000010100;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00040ff288000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00040ff288000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[1]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fc300000fc40;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op1[3]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc0090000c0200060;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc0090000c0200060;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf3f3f3f3f3f3f4f3;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf3f3f3f3f3f3f4f3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000f3f3f4f3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000f3f3f4f3;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff8579f;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefe01010101;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000810001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000810001;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000104000200;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
new file mode 100644
index 0000000..b5c0fca
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
@@ -0,0 +1,636 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000007f007f5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x002e4db200000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000315ac0000d658;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00735278007cf94c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003ed8800031b38;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff8fc000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7ff77fff7ff7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7ff77fff7ff7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000022;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000022;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000004;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000016600000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000016600000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x7f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x50);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x20);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00550f0000550f00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000015c015c0;
+ *((unsigned long *)&__m256i_result[2]) = 0xc0c0c0cdc0c0c0cd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc0c0c0cdc0c0c0cd;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x00f800f800f800f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0018181800181818;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f800f800f800f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0018181800181818;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43e019c657c7d050;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xe8001411edf9c0f8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xe80014fdf0e3e428;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff10003;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff10003;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefee0e3fefefe00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefee0e3fefefe00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f780000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f8f7f80000fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f780000ff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8e8e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8e8e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f00004040;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f010700c70106;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f010700c70106;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000010211921;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000010211921;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000080ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000080ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff8;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x4);
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[2]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op0[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[0]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op1[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op1[2]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op1[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op1[0]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrl.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrl.c
new file mode 100644
index 0000000..1d591c3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrl.c
@@ -0,0 +1,650 @@
+/* { 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]) = 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_xvsrl_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_xvsrl_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]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrl_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_xvsrl_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((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_xvsrl_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_xvsrl_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvsrl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_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]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[2]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_result[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_result[0]) = 0x6580668200fe0002;
+ __m256i_out = __lasx_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff874dc687870000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffc6cc05c64d960e;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000003f7e3f;
+ *((unsigned long *)&__m256i_result[0]) = 0xff874dc687870000;
+ __m256i_out = __lasx_xvsrl_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_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffba0c05;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffba0c05;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000483800;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ffffff00ffff;
+ __m256i_out = __lasx_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrl_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]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvsrl_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]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrl_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
+ __m256i_out = __lasx_xvsrl_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_xvsrl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvsrl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_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]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080000000800;
+ __m256i_out = __lasx_xvsrl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffff70156;
+ *((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_xvsrl_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]) = 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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvsrl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_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]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fe37fe3001d001d;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff0000;
+ __m256i_out = __lasx_xvsrl_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_xvsrl_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((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_xvsrl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004000;
+ *((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]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrl_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]) = 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_xvsrl_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_xvsrl_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]) = 0xfff10000fff10000;
+ *((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_xvsrl_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]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrl_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_xvsrl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000008e4bfc4eff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001ffee10000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000008e4bfc4eff0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001ffee10000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d000000000d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0000060d0d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d000000000d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0000060d0d;
+ __m256i_out = __lasx_xvsrl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvsrl_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]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffff03ffffff07;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffff03ffffff07;
+ __m256i_out = __lasx_xvsrl_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]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrl_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((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_xvsrl_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040004000;
+ __m256i_out = __lasx_xvsrl_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040404040;
+ __m256i_out = __lasx_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe01fe01fd02fd02;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe01fe01fd02fd02;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03fc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0xfe01fe017e81fd02;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000003fc001fe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfe01fe017e81fd02;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000003fc001fe;
+ __m256i_out = __lasx_xvsrl_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000010000685e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000020a4ffffbe4f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000003ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000003ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ffffffffffff;
+ __m256i_out = __lasx_xvsrl_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001ffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001ffff8000;
+ __m256i_out = __lasx_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_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]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_result[2]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_result[1]) = 0xfd02fd02fd02fd02;
+ *((unsigned long *)&__m256i_result[0]) = 0xfd02fd02fd02fd02;
+ __m256i_out = __lasx_xvsrl_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000002780;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000002780;
+ __m256i_out = __lasx_xvsrl_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-xvsrli.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrli.c
new file mode 100644
index 0000000..e869670
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrli.c
@@ -0,0 +1,405 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000050005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010101110101011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1111111211111112;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004444;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007dfdff4b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x003ffff300000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000001f7f7f;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x9240f24a84b18025;
+ *((unsigned long *)&__m256i_op0[2]) = 0x9240f24a84b18025;
+ *((unsigned long *)&__m256i_op0[1]) = 0xb2c0b341807f8006;
+ *((unsigned long *)&__m256i_op0[0]) = 0xb2c0b341807f8006;
+ *((unsigned long *)&__m256i_result[3]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_result[2]) = 0x009200f200840080;
+ *((unsigned long *)&__m256i_result[1]) = 0x00b200b300800080;
+ *((unsigned long *)&__m256i_result[0]) = 0x00b200b300800080;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ffff0001ffff;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffcb423a587053;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6d46f43e71141b81;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffcb423a584528;
+ *((unsigned long *)&__m256i_op0[0]) = 0x9bdf36c8d78158a1;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000007fffe;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000036a37;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000007fffe;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000004def9;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0889088908810881;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0081010000810100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0889088900810088;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0081010000810100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0004448444844084;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000408080004080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004448444804080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000408080004080;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000001d001d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000001d001d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000030003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000030003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000307;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000a0010400a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000a0010400a;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff00;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ffff0001ffff;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_d (__m256i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x3fffffff3fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fffffff3fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fff00003fff;
+ __m256i_out = __lasx_xvsrli_w (__m256i_op0, 0x12);
+ 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_result[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x3fff3fff3fff3fc4;
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x3fff3fff3fff3fc4;
+ __m256i_out = __lasx_xvsrli_h (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrln.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrln.c
new file mode 100644
index 0000000..d549910
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrln.c
@@ -0,0 +1,425 @@
+/* { 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]) = 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_xvsrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000003868686a20;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0045b8ae81bce1d8;
+ *((unsigned long *)&__m256i_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]) = 0x00386a20b8aee1d8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00386a20b8aee1d8;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000001010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e00ff017e00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x88888a6d0962002e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdb8a3109fe0f0020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000007fff01fffb;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdb8e20990cce025a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff01ff3400000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff83ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0962002efe0f0020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01fffb8667012d;
+ __m256i_out = __lasx_xvsrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffeffeb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fb7afb62;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffeffeb;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fb7afb62;
+ *((unsigned long *)&__m256i_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]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeffebfb7afb62;
+ __m256i_out = __lasx_xvsrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000040;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000a00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000000a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff017e6b803fc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff017e6b803fc0;
+ __m256i_out = __lasx_xvsrln_w_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]) = 0x0000000000000781;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000078100000064;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_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]) = 0xa1a1a1a1a1a15e5e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xa1a1a1a1a1a15e5e;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrln_h_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]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000800400010006d;
+ *((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_xvsrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff97a2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff97a2;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000027;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000027;
+ *((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_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrln_b_h (__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]) = 0x1716151417161514;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1716151417161514;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1716151417161514;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1716151417161514;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fff0fff0fff0fff;
+ __m256i_out = __lasx_xvsrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c
new file mode 100644
index 0000000..0fb6483
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c
@@ -0,0 +1,680 @@
+/* { 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]) = 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_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffc500000002d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000034;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbfa3e127c147721f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1729c173836edfbe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdf91f111808007fb;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5ff1f90ffffbf30f;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff280016;
+ *((unsigned long *)&__m256i_result[2]) = 0xd193a30f94b9b7df;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000001001a;
+ *((unsigned long *)&__m256i_result[0]) = 0xc88840fdf887fd87;
+ __m256i_out = __lasx_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000f;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffc5556aaa8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffc5556aaa8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555553f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000007070205;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002020100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000007070205;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002020100;
+ __m256i_out = __lasx_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefe00000000;
+ *((unsigned long *)&__m256i_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]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x36);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x73);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffe01fe01f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe01fe01f;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe01fe01f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe01fe01f;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fe01020b0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fe01020b0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fff0fff00000020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0fff0fff00000020;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_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]) = 0x01fb16ef98f97e90;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x01fb16ef98f97e90;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x0);
+ 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]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffa0078fffa0074;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffa2078fffa2074;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffa2078fffa2074;
+ *((unsigned long *)&__m256i_result[3]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x01ff01ff01ff01ff;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003e6c0000cb7a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000401000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003e6c0000cb7a;
+ *((unsigned long *)&__m256i_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]) = 0x40000000b000032d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x40000000b000032d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x6);
+ 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]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007f00ff007f00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fc03fc01fc03fc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fc03fc01fc03fc;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ef0120;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ef0120;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff0120;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000e9ec0000e9ec;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff0120;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000e9ec0000e9ec;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffdd001dffe00020;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffdd001dffe00031;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffdd001dffe00020;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffdd001dffe00031;
+ *((unsigned long *)&__m256i_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]) = 0x3ff73ff83ff73ff8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x3ff73ff83ff73ff8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_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]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0600060000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0600060000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000007fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000007fff8;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_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]) = 0x1e0000001e002000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1e0000001e002000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff3225;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff3225;
+ *((unsigned long *)&__m256i_op1[3]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1a19181716151413;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1a19181716151413;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000004442403;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000004442403;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x63);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fef0000ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fef0000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0xde00fe0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fe010000fe01;
+ *((unsigned long *)&__m256i_result[1]) = 0xde00fe0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fe010000fe01;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000007070707;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff07070707;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000007070707;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff07070707;
+ __m256i_out = __lasx_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x03ff000003ff03ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x03ff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x03ff000003ff03ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x03ff000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007ffff0007ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000700000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007ffff0007ffff;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000e000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000e000e;
+ *((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]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfc003802fc000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x03802fc000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x03802fc000000000;
+ __m256i_out = __lasx_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x14);
+ 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_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x5a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x080808000828082f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0808080008280820;
+ *((unsigned long *)&__m256i_op0[1]) = 0x080808000828082f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0808080008280820;
+ *((unsigned long *)&__m256i_op1[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op1[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op1[0]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00828082f0808080;
+ *((unsigned long *)&__m256i_result[2]) = 0xf18181818132feea;
+ *((unsigned long *)&__m256i_result[1]) = 0x00828082f0808080;
+ *((unsigned long *)&__m256i_result[0]) = 0xf18181818132feea;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x24);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_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_xvsrlni_w_d (__m256i_op0, __m256i_op1, 0x39);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x43);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe01fe01fc01fc01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe01fe01fc01fc01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_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]) = 0xfc01000000003fc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc01000000003fc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_h_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000126000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2555205ea7bc4020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000126000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2555205ea7bc4020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op1[2]) = 0x10ffffff10000006;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0fffffff10000006;
+ *((unsigned long *)&__m256i_op1[0]) = 0x10ffffff10000006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000004980008;
+ *((unsigned long *)&__m256i_result[2]) = 0x003ffffffc400000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000004980008;
+ *((unsigned long *)&__m256i_result[0]) = 0x003ffffffc400000;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x46);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0ff00fff0ff10;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00f0000000f00010;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0ff00fff0ff10;
+ *((unsigned long *)&__m256i_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]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0087ff87f807ff87;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x68);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvsrlni_b_h (__m256i_op0, __m256i_op1, 0x6);
+ 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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x50);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000050005;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf007fe76f008fe19;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf08aff01f07cc291;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf007fe76f008fe19;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf08aff01f07cc291;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000001400;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000003c01ff9;
+ __m256i_out = __lasx_xvsrlni_d_q (__m256i_op0, __m256i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c
new file mode 100644
index 0000000..22e62a3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c
@@ -0,0 +1,515 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x40d74f979f99419f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x40d74f979f99419f;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff8080000004000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000080000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff8080000000000;
+ *((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]) = 0x0000000200000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000000;
+ __m256i_out = __lasx_xvsrlr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_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]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff0000000000080;
+ __m256i_out = __lasx_xvsrlr_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff0000000000000;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvsrlr_w (__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]) = 0x0000000001020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_b (__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]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003ddd80007bbb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000002222;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003ddd80007bbb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvsrlr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0ea85f60984a8555;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00a21ef3246995f3;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1189ce8000fa14ed;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0e459089665f40f3;
+ *((unsigned long *)&__m256i_result[3]) = 0x000100f800000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000f800000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000000000010;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fc00000428a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fc00000428a;
+ *((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]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffc040ffffc09d;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsrlr_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_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff1fffffff1;
+ *((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]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+ __m256i_out = __lasx_xvsrlr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f7f000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7f7f000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f7f7f7f7f7f7f;
+ *((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]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100010001;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrlr_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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7c00000880008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7c00000880008000;
+ *((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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100000001000100;
+ __m256i_out = __lasx_xvsrlr_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]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000008;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000430207f944;
+ __m256i_out = __lasx_xvsrlr_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_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffff010ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000201;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000201;
+ __m256i_out = __lasx_xvsrlr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_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]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff01fb0408;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[2]) = 0xf2b180c9fc1fefdc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_result[0]) = 0xf2b180c9fc1fefdc;
+ __m256i_out = __lasx_xvsrlr_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_b (__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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0xff1cff1cff1c3fc7;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xff1cff1cff1c3fc7;
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
+ __m256i_out = __lasx_xvsrlr_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op1[3]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6b6b6b6b6b6b6b6b;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d6d6d;
+ __m256i_out = __lasx_xvsrlr_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff01ff01ff01f010;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff01ff01ff01f010;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff01ff01ff01f010;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff01ff01ff01f010;
+ *((unsigned long *)&__m256i_result[3]) = 0x000078780000f0f1;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000078780000f0f1;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlr_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffc00040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffc00040;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1080108010060002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1080108010060002;
+ __m256i_out = __lasx_xvsrlr_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c
new file mode 100644
index 0000000..71f770a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c
@@ -0,0 +1,416 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x33);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff000000;
+ *((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_xvsrlri_d (__m256i_op0, 0x28);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000505;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff0002fffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0002ff7e8286;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff0002fffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0002ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0202000002020202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202000002010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0202000002020202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202000002020000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_result[3]) = 0x0703030307030203;
+ *((unsigned long *)&__m256i_result[2]) = 0x0703030307030203;
+ *((unsigned long *)&__m256i_result[1]) = 0x0703030307030203;
+ *((unsigned long *)&__m256i_result[0]) = 0x0703030307030203;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f3fc6c68787;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f3f87870000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3fc6c68787;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f87870000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010183f95466;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01010101d58efe94;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000101000083f95;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001010000d58f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000101000001010;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0xc);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010002000100020;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020000000200000;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x39);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000040000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000040000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000040000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000040000000000;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_op0[0]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_result[2]) = 0x132feea900000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x04e8296f18181818;
+ *((unsigned long *)&__m256i_result[0]) = 0x132feea900000000;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000001200000011a;
+ *((unsigned long *)&__m256i_result[2]) = 0x2040204020402040;
+ *((unsigned long *)&__m256i_result[1]) = 0x000001200000011a;
+ *((unsigned long *)&__m256i_result[0]) = 0x2040204020402040;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffa003e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffb009c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffa003e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffb009c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvsrlri_d (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0020004000400040;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020004000400040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020004000400040;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020004000400040;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0xa);
+ 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_result[3]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000800000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffbfffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffbfffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0102020202010202;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0102020202010202;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvsrlri_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000000000000;
+ __m256i_out = __lasx_xvsrlri_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c
new file mode 100644
index 0000000..cbc1de3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffff328dfff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6651bfff00000000;
+ *((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]) = 0x0202020201010000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000050005;
+ *((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]) = 0x0000000000000505;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4df5b1a3ed5e02c1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x108659e46485f7e1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4df5b1a3ed5e02c1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff820002ff820002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff820002ff820002;
+ *((unsigned long *)&__m256i_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]) = 0x00020002ff820002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00020002ff820002;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00020421d7d41124;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00020421d7d41124;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvsrlrn_w_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]) = 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]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff000200000000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000ff020000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff020000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01fe0000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01fe0000ff01;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf9f9f9f9f9f9f9f9;
+ *((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]) = 0xf9f9f9f900000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xf9f9f9f900000002;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000004843ffdff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000004843ffdff;
+ *((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]) = 0x00043fff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00043fff00000000;
+ __m256i_out = __lasx_xvsrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlrn_h_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]) = 0xff1cff1b00e300e4;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff1cff1b00e300e4;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff1cff1b00e300e4;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff1cff1b00e30100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x002000000020ffff;
+ __m256i_out = __lasx_xvsrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffdbff980038ffaf;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffafffe80004fff1;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffdbff980038ffaf;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffafffe80004fff1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000020202020202;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000020202020202;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000e3fec0004fff1;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000e3fec0004fff1;
+ __m256i_out = __lasx_xvsrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c
new file mode 100644
index 0000000..8fc7a00
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c
@@ -0,0 +1,455 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x7a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100010001000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000808000008080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000808000008081;
+ *((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]) = 0x0000000000000081;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x68);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000801380f380fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000801380f300fb;
+ *((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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x42);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_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]) = 0xf0000000f0000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf0000000f0000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x0);
+ 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]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_h_w (__m256i_op0, __m256i_op1, 0x1b);
+ 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]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x817f11ed81800ff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000004fc480040;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000004fc480040;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000004fc480040;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000004fc480040;
+ __m256i_out = __lasx_xvsrlrni_h_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x0004000404040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0004000400000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000004;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_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_xvsrlrni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x80208020c22080a7;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x80208020c22080a7;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdfc2ff20df80ffa7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdf80ff20df80ff20;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdfc2ff20df80ffa7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000840100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xbffebffec0febfff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000840100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xbffebffec0febfff;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffc0c0ffffbfc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffc0c0ffffbfc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f0000400d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f0000400d;
+ *((unsigned long *)&__m256i_result[3]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x44);
+ 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]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffe00000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffe00000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfc00000000000048;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbfffa004fffd8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbfffa004fffd8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003f0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00002fffe8013fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003f0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00002fffe8013fff;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000080800000808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000080800000808;
+ *((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]) = 0x0000101000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000101000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00010001000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00010001000100;
+ *((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]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x5a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00b2fe28e4420609;
+ *((unsigned long *)&__m256i_op0[2]) = 0x028da7fe15020000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00b2fe28e4420609;
+ *((unsigned long *)&__m256i_op0[0]) = 0x028da7fe15020000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000800000010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002000000;
+ __m256i_out = __lasx_xvsrlrni_d_q (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000003ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000003ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001ffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrlrni_w_d (__m256i_op0, __m256i_op1, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0040000000000000;
+ __m256i_out = __lasx_xvsrlrni_w_d (__m256i_op0, __m256i_op1, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001200000012;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001200000012;
+ *((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_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff0fc00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff0fc00;
+ *((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]) = 0x00000000f880f87e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f880f87e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+ __m256i_out = __lasx_xvsrlrni_h_w (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000812000008120;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000081220000812c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000812000008120;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefefefefe;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x6);
+ 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]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvsrlrni_b_h (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssran.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssran.c
new file mode 100644
index 0000000..fdb0c25
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssran.c
@@ -0,0 +1,905 @@
+/* { 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]) = 0x00007ffe81fdfe03;
+ *((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]) = 0x7ffe800000000000;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_wu_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_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffef000004ea;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000607f700000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1717171717171717;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000607f700000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffe81;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x79f9f9f900000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00f9f90079f9f9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x79f9f9f900000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007f7f7f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f007f78;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000033007e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000021;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f7f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f00007fff;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000080;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+ *((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]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff00000000;
+ __m256i_out = __lasx_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000002aaad555;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000002aaad555;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff00000000;
+ __m256i_out = __lasx_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffc00000ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffc00000ffc0ffc0;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcfee0fe00ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffcfee0fe00ffe0;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000001fff9fff8;
+ *((unsigned long *)&__m256i_op1[3]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff900000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff900000003;
+ *((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]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0000;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000100000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000100000;
+ *((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]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvssran_hu_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_hu_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]) = 0xff2400000000ff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffeffe4fffeff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff6400000000ff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffeff66fffeff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000100da000100fd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001ffe20001fefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001009a000100fd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001ff640001fefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fe0100000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssran_wu_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_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssran_hu_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]) = 0x0101010101010100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdbcbdbcb0000dbcb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000016000000480d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000226200005111;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000016000000480d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1131288800000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1131288800000002;
+ __m256i_out = __lasx_xvssran_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010200000000;
+ *((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_xvssran_bu_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_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f3f7f007f1f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f3f7f007f1f;
+ __m256i_out = __lasx_xvssran_bu_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]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x007f8080007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssran_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssran_hu_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_xvssran_bu_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_xvssran_bu_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]) = 0x00000000000000ff;
+ *((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]) = 0x000000ff00000000;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000077fff;
+ *((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]) = 0x00000000000007ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8d8d72728d8d8d8d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8d8d72728d8d8d8d;
+ *((unsigned long *)&__m256i_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_bu_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]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001010800;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff0008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0008;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfdfdfdfdfdfdfdfd;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe27fe2821d226278;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfdfdfdfdfdfdfdfd;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe27fe2821d226278;
+ *((unsigned long *)&__m256i_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvssran_hu_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]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000000d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080ff0080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080ff0080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff000000000080;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f807f80;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000007f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007f7f;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000001fff0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000feff0001ffb8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff1cff18;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff1cff18;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000070002000a;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbf3ffffffffeffed;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe013fcf2e015fc38;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe013fd00dff78420;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe013fcf2e015fc38;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe013fd00dff78420;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssran_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000003fffc0;
+ __m256i_out = __lasx_xvssran_wu_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-xvssrani.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrani.c
new file mode 100644
index 0000000..dd3c2c6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrani.c
@@ -0,0 +1,1235 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f057f0b7f5b007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000007f007f5;
+ __m256i_out = __lasx_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001fc000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000c475ceb40000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fb0819280000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x074132a240000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000003a0200;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000c9;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007fff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007fff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x37);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff0ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff0ffff0000;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x0);
+ 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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001ffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001ffffff;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0xe);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x73);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrani_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0100010001000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0100010001000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000400040004;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000f0000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f0000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1fe01e0000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x6b);
+ 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]) = 0xce7ffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xce7ffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff39ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff39ffffff;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x5e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffc0000fffc0000;
+ *((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_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x0);
+ 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]) = 0x00000000ffffffff;
+ *((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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x9);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000c40086;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00001fff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00001fff;
+ __m256i_out = __lasx_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x38f7414938f7882f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x38f7414938f78830;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000801380f380fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000801380f300fb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000008;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0303030303020000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0303030303020000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0x31);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x4d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x59);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd04752cdd5543b56;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6906e68064f3d78b;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd04752cdd5543b56;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6906e68064f3d78b;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ff1100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000004560420;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000fff00004542;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ffff00ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000fff00004542;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5b7f00ff5b7f00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf00000052a00000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5b7f00ff5b7f00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00c0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0040000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000c0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040000000;
+ __m256i_out = __lasx_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffffe02;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000300000005fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffff02;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000300000005fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0007fd00000f02ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fffeff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ffffffff00;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000018;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002000000019;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000200000001e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000019;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000000030000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000400000003c000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009c3e201e39e7e3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x87c1135043408bba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x009c3e201e39e7e3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x87c1135043408bba;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f7f7f5c8f374980;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001b0b1b4b5dd9f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f7f7f5c8f374980;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd0d8eecf383fdf0d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100007f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100007f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x39);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007c7fff00007fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00817fff00810000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007c7fff00007fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00817fff00810000;
+ *((unsigned long *)&__m256i_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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+ *((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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000457d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000b03f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000457d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000b03f;
+ *((unsigned long *)&__m256i_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_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_h_w (__m256i_op0, __m256i_op1, 0xc);
+ 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]) = 0x2000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x2000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_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]) = 0x0f000f000f000f00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0f000f000f000f00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007fc0083fc7c007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007fc0083fc7c007;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x42);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00067fff00047fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00027fff000080fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00067fff00047fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00027fff000080fe;
+ *((unsigned long *)&__m256i_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]) = 0x067f047f027f0080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x067f047f027f0080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0af57272788754ab;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000005e80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0af57272788754ab;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000005e80;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000f0f0f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f0000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000f0f0f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f0000007f;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 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_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01ffff4300ffff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01ffff4300ffff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x2e);
+ 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_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x4b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_h_w (__m256i_op0, __m256i_op1, 0xa);
+ 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]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0400100004001000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0400100004001000;
+ __m256i_out = __lasx_xvssrani_hu_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op0[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op0[0]) = 0x408480007fff0000;
+ *((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]) = 0x0000000700000008;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000700000008;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x55);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc07f8000c07f8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc07f8000c07f8000;
+ *((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]) = 0x00000000fff01fe0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fff01fe0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fe96fe95;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6afc01000001ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fe96fe95;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6afc01000001ff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040404000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000404;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0404000004040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4000400040004000;
+ *((unsigned long *)&__m256i_result[2]) = 0x4000400040004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x4000400040004000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4000400040004000;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000100;
+ *((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_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000001ff1;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000001ff1;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x53);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((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]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x03fbfffc03fc07fc;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff80000000;
+ __m256i_out = __lasx_xvssrani_w_d (__m256i_op0, __m256i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7efefefe80ffffff;
+ *((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]) = 0xffffffff003fffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000003fffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffc00fffffc00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffc00fffffc00;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00ff007f007f00;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[2]) = 0xc03fc03fc03fc03f;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[0]) = 0xc03fc03fc03fc03f;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+ __m256i_out = __lasx_xvssrani_b_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_wu_d (__m256i_op0, __m256i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x6c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrani_h_w (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000005;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000005;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x60);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrani_du_q (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff80007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrani_bu_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000fffd0004;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000000f;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000000f;
+ __m256i_out = __lasx_xvssrani_d_q (__m256i_op0, __m256i_op1, 0x6c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c
new file mode 100644
index 0000000..7848ddd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c
@@ -0,0 +1,905 @@
+/* { 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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fffffff;
+ *((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_xvssrarn_h_w (__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]) = 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_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvssrarn_hu_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_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_hu_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_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000100da000100fd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001ffe20001fefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001009a000100fd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001ff640001fefd;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000100da000100fd;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001ffe20001fefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001009a000100fd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001ff640001fefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007ff90000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000001ff60000;
+ __m256i_out = __lasx_xvssrarn_hu_w (__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]) = 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]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ffffff00ffff;
+ *((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_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000200000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00010002;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffc2c2ffffc2c2;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffc2c2ffffc2c2;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffc2c2ffffc2c2;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffc2c2ffffc2c2;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x003100310031002f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x003100310031002f;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 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_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffe0001fffe0003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000000010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000000000002;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
+ *((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_xvssrarn_hu_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_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffff6f20;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000781e0000f221;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff6f20;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000781e0000f221;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_wu_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_xvssrarn_wu_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_xvssrarn_hu_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_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000fffe;
+ *((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_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((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_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbf00bf00bf00bf00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbf84bf00bf00bf0e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_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_xvssrarn_hu_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_xvssrarn_h_w (__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]) = 0x00007f7f80007fa3;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007f670000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00007f7f80007fa3;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f670000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_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]) = 0x0000000200000008;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000008;
+ __m256i_out = __lasx_xvssrarn_wu_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_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_hu_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]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff0001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_hu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000408080c111414;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_hu_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]) = 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_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_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]) = 0x000800400010006d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000800400010006d;
+ __m256i_out = __lasx_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x02000000fdffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0200000002000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x02000000fdffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000004ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000004ffffffff;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3fd1000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff000000ff000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff000000ff000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__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]) = 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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvssrarn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff97c120000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffb6811fffff80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff97c120000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xdb410010cbe10010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xdb410010cbe10010;
+ __m256i_out = __lasx_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000019ffdf403;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000011ffd97c3;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000019ffdf403;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000011ffd97c3;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_h_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x002000000020ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000040;
+ __m256i_out = __lasx_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1a1a1a2c1a1a1a2c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3838383838383838;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffdfffffe00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3838383838383838;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffdfffffe00;
+ *((unsigned long *)&__m256i_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvssrarn_wu_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]) = 0x0000000020002000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000020002000;
+ *((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_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffbffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffbffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc03b000200020002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000001ec020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000001ec020;
+ __m256i_out = __lasx_xvssrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c
new file mode 100644
index 0000000..b1c16ba
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c
@@ -0,0 +1,1160 @@
+/* { 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]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffc00;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000020000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000020000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000800;
+ *((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_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x00001f41ffffbf00;
+ *((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]) = 0x0000000400000000;
+ __m256i_out = __lasx_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000010000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000010000000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000100;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x5d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf5f5bfbaf5f5bfbe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf5f0bfb8f5d8bfe8;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf5f5bfbaf5f5bfbe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf5f0bfb8f5d8bfe8;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf5f5bfbaf5f5bfbe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf5f0bfb8f5d8bfe8;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf5f5bfbaf5f5bfbe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf5f0bfb8f5d8bfe8;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff5f5c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff5f5c;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x6c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[2]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[1]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op0[0]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op1[3]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op1[2]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op1[1]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_op1[0]) = 0x005500550055ffab;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fffff6ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fffff6ff;
+ *((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_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a09080706050403;
+ *((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]) = 0x0003000200000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003000200000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001010300010102;
+ *((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]) = 0x0000000000410041;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000df93f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000077843;
+ *((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]) = 0x0000003800000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0x1);
+ 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_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x73);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x17);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffe056fd9d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffceba70;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000007d0d0d0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000007d0d0d0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000098;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000040000ffca;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800000098;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000040000ff79;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff04ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff04ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000008000000a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000008000000a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x44);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000120e120d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000120e120d;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((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_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0016001600160016;
+ *((unsigned long *)&__m256i_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_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0x9);
+ 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]) = 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_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x3b);
+ 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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010002000100020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffffe;
+ __m256i_out = __lasx_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0xffffffffffffe000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffe000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x54);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00030006fa05f20e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00030081bd80f90e;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000018;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000018;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_w_d (__m256i_op0, __m256i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x02407a3c00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0cf2f30d0cf2f3;
+ *((unsigned long *)&__m256i_op0[1]) = 0x02407a3c00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0cf2f30d0cf2f3;
+ *((unsigned long *)&__m256i_op1[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op1[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020000f0000000f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010000f0000000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((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]) = 0x0000ff0fff0fff0f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff0fff0fff0f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffff70156;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x74);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xde00fe0000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000fe010000fe01;
+ *((unsigned long *)&__m256i_op0[1]) = 0xde00fe0000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fe010000fe01;
+ *((unsigned long *)&__m256i_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]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000100010001ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00007ff000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x79);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000070007000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x0e0e0e0e0e0e0e0e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000e0e0e0e0e0e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa1a1a1a1a1a15e5e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa1a1a1a1a1a15e5e;
+ *((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_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fe000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe000000000;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x45);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001fffe0001fffa;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001fffe00018069;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001fffe0001fffa;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001fffe00018069;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000002000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000002000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x64);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000004000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000004000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000038000000268;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001010101;
+ __m256i_out = __lasx_xvssrarni_bu_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0400000004000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000400;
+ *((unsigned long *)&__m256i_result[1]) = 0x0400000004000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000400;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0200000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0200000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x2000000000000000;
+ __m256i_out = __lasx_xvssrarni_wu_d (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x36);
+ 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_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x1d);
+ 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]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarni_hu_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000040000001b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000040000001b;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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]) = 0x7f80ffffff808000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f80ffffff808000;
+ __m256i_out = __lasx_xvssrarni_b_h (__m256i_op0, __m256i_op1, 0x0);
+ 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]) = 0x0000001e00000000;
+ *((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]) = 0x0002000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrarni_h_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000500020002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000700020033;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000500020002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000700020033;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000500020002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000700020033;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000500020002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000700020033;
+ *((unsigned long *)&__m256i_result[3]) = 0x1400080008000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1400080008000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x1400080008000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1400080008000000;
+ __m256i_out = __lasx_xvssrarni_d_q (__m256i_op0, __m256i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000001c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000001de;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000001c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000001de;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000060000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000060000000;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x44);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00003fea0014734d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003fe900140d85;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00003fea0014734d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003fe900140d85;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff0000ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff0000ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrarni_du_q (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrln.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrln.c
new file mode 100644
index 0000000..356eb21
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrln.c
@@ -0,0 +1,965 @@
+/* { 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]) = 0x44bb2cd3a35c2fd0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xca355ba46a95e31c;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000100ab000500a0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000200b800080124;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001011b000200aa;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00150118008f0091;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f057f0b7f5b007f;
+ __m256i_out = __lasx_xvssrln_b_h (__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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((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]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020000000;
+ *((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]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007f00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7ffe7fffeffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffd84900000849;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07fffc670800f086;
+ *((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]) = 0x0000000100000000;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_bu_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_xvssrln_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000017ffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffff0ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffff0ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000017000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000017000000080;
+ *((unsigned long *)&__m256i_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]) = 0x0000000001700080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001700080;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x2000200020002000;
+ *((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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff0e400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvssrln_wu_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]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_hu_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_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256i_op0[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000005536aaaaac;
+ *((unsigned long *)&__m256i_op0[0]) = 0x55555555aaaaaaac;
+ *((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]) = 0x0000060102150101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000060102150101;
+ __m256i_out = __lasx_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out = __lasx_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_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]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000003f0000;
+ __m256i_out = __lasx_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f7f7f0000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000154dc84;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000089;
+ *((unsigned long *)&__m256i_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]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff00000089;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_wu_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_xvssrln_wu_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_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff80000000000000;
+ *((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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvssrln_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffff600000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff000009ec;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffff600000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff000009ec;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+ *((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_xvssrln_bu_h (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((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_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe0001fffe;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8060000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8060000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff000000010000;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff00000001;
+ __m256i_out = __lasx_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff81ff7dffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff81ff7dffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f7f7f7f7f017ffd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f7f7f7f7f017ffd;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000007;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_wu_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((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_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffff;
+ *((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]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00011ffb0000bee1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00011ffb0000bee1;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01ffff4300ffff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0100010001000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01ffff4300ffff00;
+ *((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]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff00000000;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x04e8296f08181818;
+ *((unsigned long *)&__m256i_op0[2]) = 0x032feea900000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x04e8296f08181818;
+ *((unsigned long *)&__m256i_op0[0]) = 0x032feea900000000;
+ *((unsigned long *)&__m256i_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]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvssrln_hu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_hu_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrln_wu_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]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrln_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x41cfe01dde000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x41cfe01dde000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000013fc03bbc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000013fc03bbc;
+ __m256i_out = __lasx_xvssrln_wu_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_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000017f00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f03030000;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf80df80df80dfff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffdf80dfff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrln_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000017f7f7f7f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000017f7f7f7f;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000017fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000017fff;
+ __m256i_out = __lasx_xvssrln_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_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]) = 0x7fff000000017fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff000000017fff;
+ __m256i_out = __lasx_xvssrln_h_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrln_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003fffff;
+ *((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]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff010100000001;
+ __m256i_out = __lasx_xvssrln_bu_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]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000c;
+ *((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_xvssrln_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c
new file mode 100644
index 0000000..116bebb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c
@@ -0,0 +1,1130 @@
+/* { 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]) = 0x7f7f7f7f00007f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f28306860663e60;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x40d74f979f99419f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff01fd7fff7fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff7fff7fff;
+ __m256i_out = __lasx_xvssrlni_h_w (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffe0ffe0ffe0ffe0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1e1800001e180000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1e18000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000001e18;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffe0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000001e18;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0x70);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_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]) = 0x1fffffff1fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0383634303836343;
+ *((unsigned long *)&__m256i_result[1]) = 0x1fffffff1fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0383634303836343;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000401000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0x68);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x6c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0036003200360032;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000030000fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000e00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff00ff;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00001000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00001000;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x39);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op1[2]) = 0x6aeaeaeaeaeaeaea;
+ *((unsigned long *)&__m256i_op1[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_op1[0]) = 0x6aeaeaeaeaeaeaea;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000003f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000003f0;
+ *((unsigned long *)&__m256i_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_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffc0000fee0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000fe000000ffe0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffff900000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffff900000003;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7ffe00007f000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x11);
+ 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]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ffe00007f000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff0000ffff;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe17cec8fe08008ac;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe0801f41e0800168;
+ *((unsigned long *)&__m256i_op1[3]) = 0x9240f24a84b18025;
+ *((unsigned long *)&__m256i_op1[2]) = 0x9240f24a84b18025;
+ *((unsigned long *)&__m256i_op1[1]) = 0xb2c0b341807f8006;
+ *((unsigned long *)&__m256i_op1[0]) = 0xb2c0b341807f8006;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000012481e4950;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001658166830;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x77777777f7777777;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf777777777777777;
+ *((unsigned long *)&__m256i_op0[1]) = 0x77777777f7777777;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf777777777777777;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ff24;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ff24;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040404240;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040404240;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000040404240;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040404240;
+ *((unsigned long *)&__m256i_result[3]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f7f00007f7f;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 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_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_h_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00010001000c4411;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100044411;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002800000010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002800000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0002000200020018;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0002000200020008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000c0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000c0000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000040000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_result[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_result[0]) = 0x0003030300000100;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000800000;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x28);
+ 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]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fff00003fff;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_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]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0007fff8000ffff0;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000030007;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000030007;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007f7f817f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007f7f817f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f807f007f7f817f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3fc03f803fc040c0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4ffc3f783fc040c0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3fc03f803fc040c0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0003fbfc0bfbfc03;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0003fbfc0bfbfc03;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0xff56ff55ff01ff01;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff56ff55ff01ff01;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f7f7f7f;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa90896a400000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa90896a400000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f7f000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f7f000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f7f7f7f7f7f7f;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff80017fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff80017fff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000000;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80000000ff810011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80000000ff810011;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff8180ffff8181;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff8180ffff8181;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000008000ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff81ff81;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000008000ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff81ff81;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x8);
+ 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]) = 0xfffffebeeaaefafb;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffebeeaaeeeeb;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffebeeaaefafb;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffebeeaaeeeeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x01ffbfff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x03ffffff03ffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ffbfff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x03ffffff03ffffff;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x001f001f001f001f;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x61);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0200000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0200000000000000;
+ __m256i_out = __lasx_xvssrlni_du_q (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000003030000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000030400;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007000008e700000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007000008e700000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8e8e8e8e8f00ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8e8e8e8e8f00ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[2]) = 0xe2e2e202ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ff00;
+ *((unsigned long *)&__m256i_result[0]) = 0xe2e2e202ffffffff;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003800400038004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000a800b000a800b;
+ *((unsigned long *)&__m256i_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]) = 0x0000000e0010000e;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000e0010000e;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x4e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0xe07de0801f20607a;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe07de0801f20607a;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x01ff01ff01c0003e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x01ff01ff01c0003e;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x6);
+ 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]) = 0x0707070707070707;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707070707070707;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0018001800180018;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3000300030003000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3000300030003000;
+ __m256i_out = __lasx_xvssrlni_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01fe01fe01fe;
+ *((unsigned long *)&__m256i_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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_wu_d (__m256i_op0, __m256i_op1, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000598;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002cc0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002cc0000;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x31);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000200010002;
+ *((unsigned long *)&__m256i_result[3]) = 0x7f1d7f7f7f1d7f3b;
+ *((unsigned long *)&__m256i_result[2]) = 0x0202010202020102;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f1d7f7f7f1d7f3b;
+ *((unsigned long *)&__m256i_result[0]) = 0x0202010202020102;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000dfffffff1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000cfffffff3;
+ *((unsigned long *)&__m256i_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]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004000;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x31);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000004000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000004000000080;
+ __m256i_out = __lasx_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000118;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000118;
+ *((unsigned long *)&__m256i_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_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_w_d (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007efffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff80fffffffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007efffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff80fffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000e3ab0001352b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000e3ab0001352b;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000038ea4d4a;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff00007fff0000;
+ __m256i_out = __lasx_xvssrlni_h_w (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_bu_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000010000005e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000a400ff004f;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlni_b_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001fffffffe00011;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001fffffffe00011;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvssrlni_d_q (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlni_hu_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c
new file mode 100644
index 0000000..9770610
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c
@@ -0,0 +1,815 @@
+/* { 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]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_op0[1]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1515151515151515;
+ *((unsigned long *)&__m256i_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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_hu_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]) = 0x0000000100000001;
+ *((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_xvssrlrn_wu_d (__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]) = 0xf800f800f800c000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf800f800f800a000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf800f800f800e000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf800f800f800e000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_hu_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]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op1[2]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_op1[1]) = 0x5555555536aaaaac;
+ *((unsigned long *)&__m256i_op1[0]) = 0x55555555aaaaaaac;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffc0000fffc0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffc0000fffc0000;
+ *((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]) = 0x0002000200020002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200020002;
+ __m256i_out = __lasx_xvssrlrn_h_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff0004ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff0004ff;
+ __m256i_out = __lasx_xvssrlrn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_wu_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]) = 0x000000005be55bd2;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0404ffff00000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0404040800000010;
+ __m256i_out = __lasx_xvssrlrn_bu_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]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff6a9d8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x007f00f8ff7fff80;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff6a9d8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
+ __m256i_out = __lasx_xvssrlrn_hu_w (__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]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001b00fd0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000019;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000019;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000070700000707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000009091b1b1212;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000070700000707;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000009091b1b1212;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_wu_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_xvssrlrn_hu_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_xvssrlrn_hu_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_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000027d00f8;
+ *((unsigned long *)&__m256i_op1[2]) = 0x040204660265fe22;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000027d00f8;
+ *((unsigned long *)&__m256i_op1[0]) = 0x040204660265fe22;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xe273e273e273e273;
+ *((unsigned long *)&__m256i_op0[2]) = 0xe273e273e273e273;
+ *((unsigned long *)&__m256i_op0[1]) = 0xe273e273e273e273;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe273e273e273e273;
+ *((unsigned long *)&__m256i_op1[3]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_op1[1]) = 0xd207e90001fb16ef;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc8eab25698f97e90;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001c4e8ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001c4e8ffffffff;
+ __m256i_out = __lasx_xvssrlrn_wu_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_xvssrlrn_b_h (__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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffff0000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f0200007f02;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00007f0200007f02;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0097011900f4009f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003200d4010f0144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0097011900f301cd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x010b008800f80153;
+ *((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_xvssrlrn_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff810011;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3fff8000ffa08004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3fff8000ffa08004;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff01;
+ __m256i_out = __lasx_xvssrlrn_bu_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_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffbfffa0ffffff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffbfffa0ffffff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff02000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff02000000;
+ __m256i_out = __lasx_xvssrlrn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[2]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_op0[0]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff457db03f;
+ *((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]) = 0x0000ffff00020001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00020001;
+ __m256i_out = __lasx_xvssrlrn_hu_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_xvssrlrn_wu_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_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_wu_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_xvssrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000007f007f007f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvssrlrn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff0000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff0000ffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4000c08000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000080c000c080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrlrn_w_d (__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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000101000001010;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000404;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ff88ffc0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff78ffc0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000000;
+ __m256i_out = __lasx_xvssrlrn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001000100800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvssrlrn_h_w (__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]) = 0x000200a000020020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000200a000020020;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrn_bu_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff1cff1cff1c3fc7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff1cff1cff1c3fc7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+ *((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]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+ __m256i_out = __lasx_xvssrlrn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000100;
+ *((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]) = 0x0002000200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200000000;
+ __m256i_out = __lasx_xvssrlrn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000017f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000017f7f7f7f;
+ __m256i_out = __lasx_xvssrlrn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrlrn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000007ffffffce;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000020000000200;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrn_wu_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf5fffc00fc000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf5fffc00fc000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001001900010019;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0a02041904010019;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001001900010019;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0a02041904010019;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000007b007e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000007b007e;
+ __m256i_out = __lasx_xvssrlrn_hu_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c
new file mode 100644
index 0000000..b55e388
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c
@@ -0,0 +1,1160 @@
+/* { 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]) = 0x3133c6409eecf8b0;
+ *((unsigned long *)&__m256i_op0[2]) = 0xddf50db3c617a115;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa432ea5a0913dc8e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x29d403af367b4545;
+ *((unsigned long *)&__m256i_op1[3]) = 0x38a966b31be83ee9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5f6108dc25b8e028;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf41a56e8a20878d7;
+ *((unsigned long *)&__m256i_op1[0]) = 0x683b8b67e20c8ee5;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffffffffffff7ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe06df0d7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x988eb37e000fb33d;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffed95be394b1e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000ffff8000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x06f880008000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x800080008000b8f1;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff00ff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff00ff00;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000040100000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040100000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000040100000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040100000;
+ *((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]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0080200000802000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000f18080010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000f18080010000;
+ *((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_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000000000808080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000808;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000010;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000020afefb1;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f350104f7ebffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000003fffc1;
+ *((unsigned long *)&__m256i_op1[0]) = 0x005c0003fff9ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000fe6a021;
+ *((unsigned long *)&__m256i_result[1]) = 0x2000000020000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000b8000;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000020001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 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_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff7fff7fff;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+ *((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]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0020000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020000000000000;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x4b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m256i_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]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000100000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000002020000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000201eff0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000002020000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001fef010;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0010001000000000;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffd;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff00000000;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_op0[2]) = 0x002a0074666a4db9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_op0[0]) = 0x002a0074666a4db9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000018;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000018;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fff7fff05407fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0xb);
+ 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]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0408040800000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0408040800000004;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000001fbfbfc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001fbfbfc;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x62);
+ 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]) = 0x0000fe01020b0001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fe01020b0001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 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_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0xc);
+ 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]) = 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_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x9);
+ 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]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000404040;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x68);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x003f003f003f003f;
+ *((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_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000010486048c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000010486048c;
+ *((unsigned long *)&__m256i_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_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x6f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff800000ff800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe7fffecfe7fffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0808080808000800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0808080808000000;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff000c0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00040000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_op0[2]) = 0xd010101010103218;
+ *((unsigned long *)&__m256i_op0[1]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_op0[0]) = 0xd010101010103218;
+ *((unsigned long *)&__m256i_op1[3]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_op1[2]) = 0xd010101010103218;
+ *((unsigned long *)&__m256i_op1[1]) = 0xd010101010101010;
+ *((unsigned long *)&__m256i_op1[0]) = 0xd010101010103218;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff7fffffff;
+ __m256i_out = __lasx_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ff8000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffe0000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ff8000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffe0000000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0020000000200000;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_hu_w (__m256i_op0, __m256i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0504080804030405;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0504060904040305;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0504080804030405;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0504060904040305;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000141020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000141020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000080000000800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000080000000800;
+ __m256i_out = __lasx_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x35);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000010101010;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000010101010;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((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]) = 0x1010101010001000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff800000000000;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000008d00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000008d00000000;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((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_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 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_xvssrlrni_du_q (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff8000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fe70000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff10000fff10000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_result[2]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_result[0]) = 0x001fe020001fe020;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrlrni_hu_w (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000002000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000002000;
+ *((unsigned long *)&__m256i_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_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000004;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000e;
+ *((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]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_hu_w (__m256i_op0, __m256i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f010100000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f010100000101;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0008000000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0008000000000010;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
+ __m256i_out = __lasx_xvssrlrni_h_w (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000080040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000008002d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000008002d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000007f0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000000000;
+ __m256i_out = __lasx_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffbfff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f7f7f7f407fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f7f7f7f407fffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7efefefe80ffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000fdfdfe;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x07ffffff07ffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x07ffffff08000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x07ffffff08000000;
+ *((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]) = 0x207f207f207f2000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000207f2000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb68380002001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c08000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb68380002001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c08000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000007fff5b41c0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007fff5b41d0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007fff5b41c0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007fff5b41d0;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x59);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvssrlrni_w_d (__m256i_op0, __m256i_op1, 0x3c);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssrlrni_d_q (__m256i_op0, __m256i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00c00040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000008000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00c00040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000008000000001;
+ *((unsigned long *)&__m256i_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_xvssrlrni_bu_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002000200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000200000000;
+ *((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]) = 0x0000000020002000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000020002000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_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_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000008000000080;
+ __m256i_out = __lasx_xvssrlrni_wu_d (__m256i_op0, __m256i_op1, 0x39);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvssrlrni_hu_w (__m256i_op0, __m256i_op1, 0x19);
+ 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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m256i_out = __lasx_xvssrlrni_b_h (__m256i_op0, __m256i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c
new file mode 100644
index 0000000..ada72a1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c
@@ -0,0 +1,425 @@
+/* { 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff24;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff24;
+ __m256i_out = __lasx_xvssub_b (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
+ __m256i_out = __lasx_xvssub_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_xvssub_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]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000430207f944;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000bdfef907bc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000bdfef907bc;
+ __m256i_out = __lasx_xvssub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101000000010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffc0;
+ __m256i_out = __lasx_xvssub_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]) = 0x2b2b2b2b1bd68080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2a2ad4d4f2d8807e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2b2b2b2b1bd68080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x2a2ad4d4f2d8807e;
+ *((unsigned long *)&__m256i_result[3]) = 0xd4d5d4d5e42a7f80;
+ *((unsigned long *)&__m256i_result[2]) = 0xd5d62b2c0d287f82;
+ *((unsigned long *)&__m256i_result[1]) = 0xd4d5d4d5e42a7f80;
+ *((unsigned long *)&__m256i_result[0]) = 0xd5d62b2c0d287f82;
+ __m256i_out = __lasx_xvssub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff07b4ffff0707;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000b8070000a787;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff07b4ffff0707;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000b8070000a787;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffb7650000d496;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001800000018000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffb7650000d496;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001800000018000;
+ __m256i_out = __lasx_xvssub_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_xvssub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff000003c0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fff000003c0;
+ __m256i_out = __lasx_xvssub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_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]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_result[2]) = 0xff81001dff9d003b;
+ *((unsigned long *)&__m256i_result[1]) = 0xff81001dff9dff9e;
+ *((unsigned long *)&__m256i_result[0]) = 0xff81001dff9d003b;
+ __m256i_out = __lasx_xvssub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00fd0101;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00fd0101;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00fd0101;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00fd0101;
+ __m256i_out = __lasx_xvssub_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_xvssub_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvssub_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_xvssub_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x40f69fe73c26f4ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffffff9;
+ *((unsigned long *)&__m256i_result[3]) = 0x40f69fe63c26f4f5;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ff7ffff00000007;
+ *((unsigned long *)&__m256i_result[1]) = 0x40f69fe63c26f4f5;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff7ffff00000007;
+ __m256i_out = __lasx_xvssub_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]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff00ffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff00007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff00007fff;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfc00000000000000;
+ *((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]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001010800;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffefef800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffefef800;
+ __m256i_out = __lasx_xvssub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_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]) = 0x007f0000007f0060;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f0000007f0060;
+ __m256i_out = __lasx_xvssub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x4393a0a5bc606060;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43b32feea9000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x4393a0a5bc606060;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43b32feea9000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op1[2]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x3eab77367fff4848;
+ *((unsigned long *)&__m256i_op1[0]) = 0x408480007fff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x04e8296f3c611818;
+ *((unsigned long *)&__m256i_result[2]) = 0x032eafee29010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x04e8296f3c611818;
+ *((unsigned long *)&__m256i_result[0]) = 0x032eafee29010000;
+ __m256i_out = __lasx_xvssub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001ff91ff100000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001ff91ff100000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000202;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffff7fff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001ff91ff0ffdfe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffff7fff80;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001ff91ff0ffdfe;
+ __m256i_out = __lasx_xvssub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+ __m256i_out = __lasx_xvssub_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-xvssub-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c
new file mode 100644
index 0000000..f425238
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c
@@ -0,0 +1,695 @@
+/* { 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]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
+ __m256i_out = __lasx_xvssub_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_xvssub_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7fdd5ffebe1c9e3;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7fdd5ffebe1c9e3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000002467db99;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000003e143852;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000002467db99;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000003e143852;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffdb982466;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7fdd5ffadcd9191;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffdb982466;
+ *((unsigned long *)&__m256i_result[0]) = 0xf7fdd5ffadcd9191;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00fe00ff00fe;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fef0000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fef0000ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000f880f87e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f880f87e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000008000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssub_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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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]) = 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_xvssub_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]) = 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_xvssub_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010511c54440438;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010511c54440438;
+ *((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_xvssub_hu (__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]) = 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]) = 0x00000000000030b8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000030b8;
+ __m256i_out = __lasx_xvssub_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[1]) = 0xff1cff1cff1cff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
+ __m256i_out = __lasx_xvssub_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100002000;
+ *((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_xvssub_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000808000008080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000808000008081;
+ *((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_xvssub_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffec;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffec;
+ *((unsigned long *)&__m256i_result[3]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000003ff000003ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff4000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000403f3fff;
+ *((unsigned long *)&__m256i_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]) = 0x38f7414938f7882f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x38f7414938f78830;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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]) = 0xfffffffe00000001;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000000;
+ __m256i_out = __lasx_xvssub_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000f0f0f0ef;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf0f0f0f0f0f0f0ef;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000f0f0f0ef;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf0f0f0f0f0f0f0ef;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000180007f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffafaf80000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000070f07170;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000070f0f0ef;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000070f07170;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000070f0f0ef;
+ __m256i_out = __lasx_xvssub_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_wu (__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]) = 0x0000000000000032;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000003c000000032;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000004e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_wu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ffffffffffffff;
+ __m256i_out = __lasx_xvssub_wu (__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]) = 0x0010100000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0010100000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0feff00000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0feff00000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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]) = 0x247fe49409620040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x2475cef801f0ffdd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6580668200fe0002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x419cd5b11c3c5654;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssub_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]) = 0x1010100fefefeff0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0f8f0e8df676f778;
+ *((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_xvssub_du (__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]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffdfffffffdfffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffdfffffffdfffff;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffe8ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffe8ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256i_op1[2]) = 0x21f8c3c4c0000005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000c0000005;
+ *((unsigned long *)&__m256i_op1[0]) = 0x21f8c3c4c0000005;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvssub_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_xvssub_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_xvssub_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvssub_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-xvst.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvst.c
new file mode 100644
index 0000000..3c5e775
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvst.c
@@ -0,0 +1,102 @@
+/* { 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]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0;
+ __lasx_xvst (__m256i_op0, (unsigned long *)&__m256i_result, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_op0, __m256i_result);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0;
+ __lasx_xvstx (__m256i_op0, (unsigned long *)&__m256i_result, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_op0, __m256i_result);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0x8d;
+ *((unsigned long *)&__m256i_out[3]) = 0x0;
+ *((unsigned long *)&__m256i_out[2]) = 0x0;
+ *((unsigned long *)&__m256i_out[1]) = 0x0;
+ *((unsigned long *)&__m256i_out[0]) = 0x0;
+ __lasx_xvstelm_b (__m256i_op0, (unsigned long *)&__m256i_out, 0x0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0x9100;
+ *((unsigned long *)&__m256i_out[3]) = 0x0;
+ *((unsigned long *)&__m256i_out[2]) = 0x0;
+ *((unsigned long *)&__m256i_out[1]) = 0x0;
+ *((unsigned long *)&__m256i_out[0]) = 0x0;
+ __lasx_xvstelm_h (__m256i_op0, (unsigned long *)&__m256i_out, 0x0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0xe9179100;
+ *((unsigned long *)&__m256i_out[3]) = 0x0;
+ *((unsigned long *)&__m256i_out[2]) = 0x0;
+ *((unsigned long *)&__m256i_out[1]) = 0x0;
+ *((unsigned long *)&__m256i_out[0]) = 0x0;
+ __lasx_xvstelm_w (__m256i_op0, (unsigned long *)&__m256i_out, 0x0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x042f0500cfea969a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_op0[1]) = 0xa98d4f7a77c308ee;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0ad152a5ad72feeb;
+ *((unsigned long *)&__m256i_result[3]) = 0x0;
+ *((unsigned long *)&__m256i_result[2]) = 0x0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0;
+ *((unsigned long *)&__m256i_result[0]) = 0x58569d7be9179100;
+ *((unsigned long *)&__m256i_out[3]) = 0x0;
+ *((unsigned long *)&__m256i_out[2]) = 0x0;
+ *((unsigned long *)&__m256i_out[1]) = 0x0;
+ *((unsigned long *)&__m256i_out[0]) = 0x0;
+ __lasx_xvstelm_d (__m256i_op0, (unsigned long *)&__m256i_out, 0x0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c
new file mode 100644
index 0000000..1a7b0e8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvstelm.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -mlasx" } */
+/* { dg-final { scan-assembler-times "xvstelm.w" 8} } */
+
+#define LEN 256
+
+float a[LEN], b[LEN], c[LEN];
+
+void
+test ()
+{
+ for (int i = 0; i < LEN; i += 2)
+ a[i] = b[i] + c[i];
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsub.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsub.c
new file mode 100644
index 0000000..c1de1e8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsub.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]) = 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]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000009;
+ __m256i_out = __lasx_xvsub_b (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010100000000;
+ __m256i_out = __lasx_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffbe20fc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000001cc7ee87;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010bb83239;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000c409ed87;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00fe00feff02ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0100020001bf1efd;
+ *((unsigned long *)&__m256i_result[2]) = 0x010002001ec8ec88;
+ *((unsigned long *)&__m256i_result[1]) = 0x010002010db9303a;
+ *((unsigned long *)&__m256i_result[0]) = 0x01000200c60aeb88;
+ __m256i_out = __lasx_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvsub_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_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010200000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010200000000;
+ __m256i_out = __lasx_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_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]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[2]) = 0x7e00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007e1c7e1c;
+ *((unsigned long *)&__m256i_result[0]) = 0x7e00000000000000;
+ __m256i_out = __lasx_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000004000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000040004000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004000000000;
+ *((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]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_result[2]) = 0xff0101fd00010100;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff003f003f00;
+ *((unsigned long *)&__m256i_result[0]) = 0xff0101fd00010100;
+ __m256i_out = __lasx_xvsub_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_xvsub_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01ff010000fff9;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff19;
+ *((unsigned long *)&__m256i_result[1]) = 0xff02ff020001fffa;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100010001fffa;
+ __m256i_out = __lasx_xvsub_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_xvsub_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]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43e019c657c7d050;
+ *((unsigned long *)&__m256i_result[3]) = 0xbc30c40107d915df;
+ *((unsigned long *)&__m256i_result[2]) = 0xbc263e0e5c80b010;
+ *((unsigned long *)&__m256i_result[1]) = 0xbc30c40107d91607;
+ *((unsigned long *)&__m256i_result[0]) = 0xbc20e63aa8392fb0;
+ __m256i_out = __lasx_xvsub_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_xvsub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_result[3]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_result[2]) = 0xff21c241ff21c238;
+ *((unsigned long *)&__m256i_result[1]) = 0xff21c241ff21c241;
+ *((unsigned long *)&__m256i_result[0]) = 0xff21c241ff21c238;
+ __m256i_out = __lasx_xvsub_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]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf7f8f7f8f7f8f7f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f8f7f8f7f8f7f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000e000e000e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000e000e000e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000e000e000e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000e000e000e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000e0000000d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsub_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x207f207f207f2000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000207f2000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_result[3]) = 0xdf80df80df80dfff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffdf80dfff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
+ __m256i_out = __lasx_xvsub_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c5c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_result[2]) = 0x45c5c5c645c5c5c6;
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c5c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_result[0]) = 0x45c5c5c645c5c5c6;
+ __m256i_out = __lasx_xvsub_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]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1f0fdf7f3e3b31d4;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe0f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_result[2]) = 0x8008000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xe0f02081c1c4ce2c;
+ *((unsigned long *)&__m256i_result[0]) = 0x8008000000000000;
+ __m256i_out = __lasx_xvsub_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff3eff3eff3eff3e;
+ *((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]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsub_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]) = 0x00000000001c9880;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000001c9880;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffe36780;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000100000001;
+ __m256i_out = __lasx_xvsub_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00e9a80014ff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00b213171dff0606;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00e9a80014ff0000;
+ *((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]) = 0x00b213181dff0607;
+ *((unsigned long *)&__m256i_result[2]) = 0x00e9a80114ff0001;
+ *((unsigned long *)&__m256i_result[1]) = 0x00b213181dff0607;
+ *((unsigned long *)&__m256i_result[0]) = 0x00e9a80114ff0001;
+ __m256i_out = __lasx_xvsub_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000fdfdfe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001fffe00010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7ffe0001fffe0001;
+ *((unsigned long *)&__m256i_result[2]) = 0x7ffe0001fffeffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000fdfdfe;
+ __m256i_out = __lasx_xvsub_w (__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]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000006f0000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000006f0000007f;
+ __m256i_out = __lasx_xvsub_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]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808081;
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808081;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x017e00ff017e00ff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[2]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[1]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe1616161e1614e60;
+ *((unsigned long *)&__m256i_result[3]) = 0x1f9d9f9d1f9db29f;
+ *((unsigned long *)&__m256i_result[2]) = 0x1f9d9f9d201cb39e;
+ *((unsigned long *)&__m256i_result[1]) = 0x201c9f9d201cb29f;
+ *((unsigned long *)&__m256i_result[0]) = 0x1f9d9f9d201cb39e;
+ __m256i_out = __lasx_xvsub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffeffebfb7afb62;
+ *((unsigned long *)&__m256i_op1[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xc192181230000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xc192181230000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x3e6ce7d9cb7afb62;
+ *((unsigned long *)&__m256i_result[1]) = 0x4010000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3e6ce7d9cb7afb62;
+ __m256i_out = __lasx_xvsub_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_xvsub_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_xvsub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvsub_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]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffed;
+ __m256i_out = __lasx_xvsub_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0fffffff0fffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x90007fff90008000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0ffffffe90008000;
+ __m256i_out = __lasx_xvsub_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsub_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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffff80000000;
+ __m256i_out = __lasx_xvsub_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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x05ea05ea05ea05ec;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x05ea05ea05ea05ec;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfa15fa15fa15fa14;
+ __m256i_out = __lasx_xvsub_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_xvsub_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0504070804040404;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0505070804040404;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0504070804040404;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ff000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0504080804030405;
+ *((unsigned long *)&__m256i_result[2]) = 0x0504060904040305;
+ *((unsigned long *)&__m256i_result[1]) = 0x0504080804030405;
+ *((unsigned long *)&__m256i_result[0]) = 0x0504060904040305;
+ __m256i_out = __lasx_xvsub_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff00fff8ffc0;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffefff80;
+ __m256i_out = __lasx_xvsub_q (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubi.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubi.c
new file mode 100644
index 0000000..a3c0de6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubi.c
@@ -0,0 +1,482 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m256i_result[2]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m256i_result[1]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m256i_result[0]) = 0xe9e9e9e9e9e9e9e9;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff00ff00000007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m256i_result[3]) = 0xf9f8f9f8f9f9f900;
+ *((unsigned long *)&__m256i_result[2]) = 0xf9f9f9f9f9f9f9e0;
+ *((unsigned long *)&__m256i_result[1]) = 0xf9f8f9f8f9f9f900;
+ *((unsigned long *)&__m256i_result[0]) = 0xf9f9f9f9f9f9f900;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000007f;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xefefefefefefefef;
+ *((unsigned long *)&__m256i_result[2]) = 0xefefefefefefefef;
+ *((unsigned long *)&__m256i_result[1]) = 0xefefefefefefef6e;
+ *((unsigned long *)&__m256i_result[0]) = 0xeeeeeeeeeeeeeeee;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[2]) = 0x6aeaeaeaeaeaeaea;
+ *((unsigned long *)&__m256i_result[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[0]) = 0x6aeaeaeaeaeaeaea;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf6f6f6f6f6f6f6f6;
+ *((unsigned long *)&__m256i_result[2]) = 0xf6f6f6f6f6f6f6f6;
+ *((unsigned long *)&__m256i_result[1]) = 0xf6f6f6f6f6f6f6f6;
+ *((unsigned long *)&__m256i_result[0]) = 0xf6f6f6f6f6f6f6f6;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000002a54290;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000002a54290;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[2]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[1]) = 0xe7e7e7e7e7e7e7e7;
+ *((unsigned long *)&__m256i_result[0]) = 0xe7e7e7e7e7e7e7e7;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[3]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_result[2]) = 0xdbcbdbcbdbcbdbcb;
+ *((unsigned long *)&__m256i_result[1]) = 0xdbcbdbcbecececec;
+ *((unsigned long *)&__m256i_result[0]) = 0xdbcbdbcbdbcbdbcb;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0e0d0c0b0e0d0c0b;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0e0d0c0b0e0d0c0b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0e0d0c0b0e0d0c0b;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0e0d0c0b0e0d0c0b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0a0908070a090807;
+ *((unsigned long *)&__m256i_result[2]) = 0x0a0908070a090807;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a0908070a090807;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a0908070a090807;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[2]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[1]) = 0xf9f9f9f9f9f9f9f9;
+ *((unsigned long *)&__m256i_result[0]) = 0xf9f9f9f9f9f9f9f9;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_result[2]) = 0xf2f2f2f2f2f2f2f2;
+ *((unsigned long *)&__m256i_result[1]) = 0xf3f3f3f3f3f3f3f3;
+ *((unsigned long *)&__m256i_result[0]) = 0xf2f2f2f2f2f2f2f2;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[2]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[1]) = 0xebebebebebebebeb;
+ *((unsigned long *)&__m256i_result[0]) = 0xebebebebebebebeb;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfefefefefdfdfdfd;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefefdfdfdfd;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xe4e4e4e4e4e4e4e4;
+ *((unsigned long *)&__m256i_result[2]) = 0xe4e4e4e4e4e4e4e4;
+ *((unsigned long *)&__m256i_result[1]) = 0xe4e4e4e4e4e4e4e4;
+ *((unsigned long *)&__m256i_result[0]) = 0xe4e4e4e4e4e4e4e4;
+ __m256i_out = __lasx_xvsubi_bu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff7fff7fff7fff7;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff7fff7fff7fff7;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff7fff7fff7fff7;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff7fff7fff7fff7;
+ __m256i_out = __lasx_xvsubi_hu (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022be22be;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fffa2bea2be;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022be22be;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fffa2bea2be;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe1ffe1229f229f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fe07fe0a29fa29f;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe1ffe1229f229f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fe07fe0a29fa29f;
+ __m256i_out = __lasx_xvsubi_hu (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe5ffe5ffe5ffe5;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe5ffe5ffe5ffe5;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe5ffe5ffe5ffe5;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe5ffe5ffe5ffe5;
+ __m256i_out = __lasx_xvsubi_hu (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1fff1fff1fff1;
+ __m256i_out = __lasx_xvsubi_hu (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffcfffcfffcfffc;
+ __m256i_out = __lasx_xvsubi_hu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000004fb;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffef000004ea;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffefffffffef;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffecffffffec;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffecffffffec;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000018;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000018;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff30000000b;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff3fffffff3;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff30000000b;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff3fffffff3;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffff5fffffff5;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff5fffffff5;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffff5fffffff5;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff5fffffff5;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe5ffffffe5;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe5ffffffe5;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffeaffffffea;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffeaffffffea;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffeaffffffea;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffeaffffffea;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x5d20a0a15d20a0a1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x5d20a0a15d20a0a1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x5d20a0895d20a089;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_result[1]) = 0x5d20a0895d20a089;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe8ffffffe8;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe8ffffffe8;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe8ffffffe8;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffcfffffffc;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffcfffffffc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffcfffffffc;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffcfffffffc;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb683007ffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c0df5b41cf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb683007ffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c0df5b41cf;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffe97a1df5b41b0;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffeb664007ffd61;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffe97a1df5b41b0;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe7ffffffe7;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe7ffffffe7;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000400000003ffb;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000400100004001;
+ *((unsigned long *)&__m256i_result[3]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003ff000003ff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00003fef00003fea;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003ff000003ff0;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe4ffffffe4;
+ __m256i_out = __lasx_xvsubi_wu (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffefb;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffefb;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffc0008001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffffc0008001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffc0008001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffffc0008001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffffc0007fe9;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffffc0007fe9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffffc0007fe9;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffffc0007fe9;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff6;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffee;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffe6;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffe6;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffe6;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffe6;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffe1;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000100080;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000010006d;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000006d;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000010006d;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffef;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffee;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff4;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffed;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffed;
+ __m256i_out = __lasx_xvsubi_du (__m256i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c
new file mode 100644
index 0000000..caa72ca
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fff3fff;
+ *((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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000030007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000003f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000030007;
+ *((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_xvsubwev_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]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffb10001ff8f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001004c0001ff87;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffb10001ff8f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001004c0001ff87;
+ __m256i_out = __lasx_xvsubwev_h_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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff7;
+ __m256i_out = __lasx_xvsubwev_h_b (__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]) = 0x0000ff02ff80fede;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ff02ff80fede;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffe00800022;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((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_xvsubwev_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_xvsubwev_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((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_xvsubwev_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]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100040;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fff0ffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff0ffc0;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0000;
+ __m256i_out = __lasx_xvsubwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff00017fff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000001d0000001c;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001d0000001c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000001d0000001c;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001d0000001c;
+ __m256i_out = __lasx_xvsubwev_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffeff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffeff00000000;
+ __m256i_out = __lasx_xvsubwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010203;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffefefffffcfa;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffefefffffefe;
+ __m256i_out = __lasx_xvsubwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000600000006;
+ __m256i_out = __lasx_xvsubwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m256i_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_xvsubwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsubwev_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_xvsubwev_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_xvsubwev_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000102;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000fffffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffefd;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000101;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[1]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf7f7f7f7f7f7f7f7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008080809;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000008080809;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008080809;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000008080809;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000300000003;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffffd;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffd;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffd;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffd;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_d_w (__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]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff1cff18;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffff1cff1c;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff1cff18;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((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_xvsubwev_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]) = 0x0000000000001400;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000003c01ff9;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffec00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffc3fe007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffc3fe007;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00010000;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000010100000102;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010100000102;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007fffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007fffff007fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007fffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007fffff007fffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00c200c200c200c2;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00c200c200c200bb;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffbdff3cffbdff44;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffbdff3cffbdff44;
+ __m256i_out = __lasx_xvsubwev_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]) = 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_xvsubwev_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_xvsubwev_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-xvsubwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.c
new file mode 100644
index 0000000..57d883c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.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]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000017;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001700170017;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000007f0000007f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007f0000007f;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff80ff01ff80;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff800000007e;
+ __m256i_out = __lasx_xvsubwev_h_bu (__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]) = 0x0043030300400300;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0043030300400300;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0043030300400100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0043030300400100;
+ *((unsigned long *)&__m256i_result[3]) = 0xffdd001dffe00020;
+ *((unsigned long *)&__m256i_result[2]) = 0xffdd001dffe00031;
+ *((unsigned long *)&__m256i_result[1]) = 0xffdd001dffe00020;
+ *((unsigned long *)&__m256i_result[0]) = 0xffdd001dffe00031;
+ __m256i_out = __lasx_xvsubwev_h_bu (__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]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000001ffe2000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x001fe020001fe020;
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe1ffe0ffe1ffe0;
+ __m256i_out = __lasx_xvsubwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffee00ba;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80008000fff98000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00fffff500ba;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00fffff500ba;
+ __m256i_out = __lasx_xvsubwev_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000047000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000004efffe00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000047000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff0100ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff01;
+ __m256i_out = __lasx_xvsubwev_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]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff01ff01ff01;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffcfffcfffcfffc;
+ *((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]) = 0x0000fffc0000fffc;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffc0000fffc;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001504f4c4b2361;
+ *((unsigned long *)&__m256i_op0[2]) = 0x303338a48f374969;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001504f4c4b2361;
+ *((unsigned long *)&__m256i_op0[0]) = 0x303338a48f374969;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[2]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000f0f0f0f0;
+ *((unsigned long *)&__m256i_op1[0]) = 0xf0f0f0f0f0f0f0f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff47b4ffff5879;
+ __m256i_out = __lasx_xvsubwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff0000ffff0001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff0000ffff0001;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_w_hu (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
+ __m256i_out = __lasx_xvsubwev_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffefffffefc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffbf4;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000006;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000308;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000002;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x0000010100000102;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010100000102;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffefd;
+ __m256i_out = __lasx_xvsubwev_d_wu (__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]) = 0x00000000fffffe40;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000f1a40;
+ __m256i_out = __lasx_xvsubwev_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003effe1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003effe1;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000003effe1;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000003effe1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe00010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe00010001;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fffffff7;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fffffff7;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff0002;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0002;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0002;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0002;
+ __m256i_out = __lasx_xvsubwev_d_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]) = 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_xvsubwev_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0000;
+ __m256i_out = __lasx_xvsubwev_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_xvsubwev_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_xvsubwev_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x5d20a0a15d20a0a1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x5d20a0a15d20a0a1;
+ *((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_xvsubwev_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]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000000001;
+ __m256i_out = __lasx_xvsubwev_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]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffeffffff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1c1c1c1c1c1c1c1c;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffeffffff00;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000100;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000100;
+ __m256i_out = __lasx_xvsubwev_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0040000000000003;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
+ *((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]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsubwev_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-xvsubwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c
new file mode 100644
index 0000000..1687729
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c
@@ -0,0 +1,695 @@
+/* { 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]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001000000;
+ *((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]) = 0xffe4ffe6ffe5ffe6;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe4ffe6ffe5ffe6;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe4ffe6ffe5ffe6;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe4ffe6ffe5ffe6;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvsubwod_h_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]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x017e01fe01fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0586060601fe0202;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e01fe01fe0000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0586060601fe0004;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffbfffafffffffe;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffbfffaffff0000;
+ __m256i_out = __lasx_xvsubwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_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]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m256i_result[1]) = 0xffefffef00000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffefffefffefffef;
+ __m256i_out = __lasx_xvsubwod_h_b (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000003ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((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_xvsubwod_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]) = 0xffffffffffffff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsubwod_h_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_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_xvsubwod_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_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffff90ffffff80;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 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_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100008000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100008000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100007fff;
+ __m256i_out = __lasx_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000043efffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000043efffff8000;
+ __m256i_out = __lasx_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f60041f636003;
+ *((unsigned long *)&__m256i_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]) = 0x0000003f00001f63;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000003f00001f63;
+ __m256i_out = __lasx_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000400080ffc080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff80ff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff80ff;
+ __m256i_out = __lasx_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffefff80;
+ *((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]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003cfc0000006f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003cfc0000006f;
+ __m256i_out = __lasx_xvsubwod_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]) = 0xffffffffffff6361;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4d0a902890b800dc;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffff6361;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4d0a902890b800dc;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffb2f600006f48;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffb2f600006f48;
+ __m256i_out = __lasx_xvsubwod_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]) = 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_xvsubwod_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_xvsubwod_w_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000001fffe;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000001fffe;
+ __m256i_out = __lasx_xvsubwod_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
+ *((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]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000060000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000017e;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_d_w (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000020202020;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000020202020;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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_xvsubwod_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]) = 0x00000000ffffffff;
+ *((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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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_xvsubwod_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8ff40;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff0100090040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000b7;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffefff80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ff02;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ff02;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_d_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000005ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000700000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe00;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffe00;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x1e17ffffd0fc6772;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1e17ffffebf6ded2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1e17ffffd0fc6772;
+ *((unsigned long *)&__m256i_op1[0]) = 0x1e17ffffebf6ded2;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xe1e800002f03988d;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xe1e800002f03988d;
+ __m256i_out = __lasx_xvsubwod_q_d (__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]) = 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]) = 0x6300000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x6300000000000001;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000808;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xf7f7f7f7f7f7f7f8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff1fff1fff1fff1;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000e000e000e000e;
+ __m256i_out = __lasx_xvsubwod_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_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]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0a0a000000000a0a;
+ __m256i_out = __lasx_xvsubwod_q_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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-xvsubwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c
new file mode 100644
index 0000000..8d6ed92
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.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]) = 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]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff01ff01ff01;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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]) = 0x0000000000020001;
+ *((unsigned long *)&__m256i_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_xvsubwod_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]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007dfdff4b;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff3400000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff83ff01;
+ __m256i_out = __lasx_xvsubwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004000000040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ff010000ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff010000ff01;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ff010000ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff010000ff01;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_op0[1]) = 0xefdfefdf00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xefdfefdfefdfefdf;
+ *((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]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_result[2]) = 0xfff0fff0fff0fff0;
+ *((unsigned long *)&__m256i_result[1]) = 0xfff0fff0ff01ff01;
+ *((unsigned long *)&__m256i_result[0]) = 0xfff0fff0fff0fff0;
+ __m256i_out = __lasx_xvsubwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op1[2]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_op1[1]) = 0xdf80df80df80df80;
+ *((unsigned long *)&__m256i_op1[0]) = 0xdfc2df80df80df87;
+ *((unsigned long *)&__m256i_result[3]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256i_result[2]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256i_result[1]) = 0xff21ff21ff21ff21;
+ *((unsigned long *)&__m256i_result[0]) = 0xff21ff21ff21ff21;
+ __m256i_out = __lasx_xvsubwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[2]) = 0x4079808280057efe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007ffcfcfd020202;
+ *((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]) = 0x004000800080007e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000fc00fd0002;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0xff01ff0100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff01ff0100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff01ff0100000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff01ff0100000000;
+ __m256i_out = __lasx_xvsubwod_h_bu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe00007f000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000100000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff7fff00007f00;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000100007fff;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000b8f81b8c840e4;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff5ffff4738;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffb3b4;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff5ffff4738;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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_xvsubwod_w_hu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00009fff9ffffd80;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff20010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00009fff9ffffd80;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff20010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00002080df5b41cf;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00002080df5b41cf;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000009fff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff40a6;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000009fff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff40a6;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00007fffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00007fffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffff8001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvsubwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x020afefb08140000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0003fffc00060000;
+ *((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]) = 0xffffffff0001ff02;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff020afefc;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000003fefd;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_d_wu (__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]) = 0x1514151415141514;
+ *((unsigned long *)&__m256i_op1[2]) = 0x151415141514e335;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1514151415141514;
+ *((unsigned long *)&__m256i_op1[0]) = 0x151415141514e335;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000e9ece9ec;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000e9ece9ec;
+ __m256i_out = __lasx_xvsubwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0008000800080008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000c005e000c0029;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004005600040020;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000300000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000300000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000060008;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000c005b;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffe0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000040053;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f784000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f8f7f84000fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f784000ff80;
+ *((unsigned long *)&__m256i_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]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000003f78;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000f7f8f7f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003f78;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000070007000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff8fff9000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff8fff9000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff8fff9000;
+ __m256i_out = __lasx_xvsubwod_d_wu (__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]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8848c848c848c848;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc848c848c848c848;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8848c848c848c848;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffff37b737b8;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff77b737b8;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff37b737b8;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff77b737b8;
+ __m256i_out = __lasx_xvsubwod_d_wu (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff457db03f;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000457db03e;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff457db03f;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvsubwod_d_wu (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvsubwod_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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvsubwod_q_du (__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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((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_xvsubwod_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_xvsubwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000050504c4c2362;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000b2673a90896a4;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffafafb3b3dc9d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffafafb3b3dc9d;
+ __m256i_out = __lasx_xvsubwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0100000100000001;
+ *((unsigned long *)&__m256i_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]) = 0x0000000008050501;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000008050501;
+ __m256i_out = __lasx_xvsubwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000029170;
+ *((unsigned long *)&__m256i_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]) = 0x0000000001fff000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000001fff000;
+ __m256i_out = __lasx_xvsubwod_q_du (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000090b0906;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d6d6d;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsubwod_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_xvsubwod_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-xvxor.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c
new file mode 100644
index 0000000..18b36c8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxor.c
@@ -0,0 +1,185 @@
+/* { 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]) = 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_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_result[2]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_result[1]) = 0x7be2468acf15f39c;
+ *((unsigned long *)&__m256i_result[0]) = 0x7ff0000000000000;
+ __m256i_out = __lasx_xvxor_v (__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]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x00c100c100c100c1;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00c100c100c100c1;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvxor_v (__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_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0100000001000100;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0100000001000100;
+ __m256i_out = __lasx_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_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]) = 0x0000000000000f90;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000f90;
+ __m256i_out = __lasx_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d20227a78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x132feeabd2d33b38;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x9fe7fffffffff32e;
+ *((unsigned long *)&__m256i_result[2]) = 0x6040190ddfdd8587;
+ *((unsigned long *)&__m256i_result[1]) = 0xecd011542d2cc4c7;
+ *((unsigned long *)&__m256i_result[0]) = 0x6040190dffffffff;
+ __m256i_out = __lasx_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000101000001010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000101000001010;
+ __m256i_out = __lasx_xvxor_v (__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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
+ __m256i_out = __lasx_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 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_xvxor_v (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c
new file mode 100644
index 0000000..8fd6298
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvxori.c
@@ -0,0 +1,163 @@
+/* { dg-do run } */
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lasxintrin.h>
+
+int
+main ()
+{
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000005e02;
+ *((unsigned long *)&__m256i_result[3]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[2]) = 0xc2c2c2c2c2c29cc0;
+ *((unsigned long *)&__m256i_result[1]) = 0xc2c2c2c2c2c2c2c2;
+ *((unsigned long *)&__m256i_result[0]) = 0xc2c2c2c2c2c29cc0;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xc2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x1616161616161616;
+ *((unsigned long *)&__m256i_op0[2]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe16167f161616;
+ *((unsigned long *)&__m256i_op0[0]) = 0x161616167fffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xc7c7c7c7c7c7c7c7;
+ *((unsigned long *)&__m256i_result[2]) = 0xc7c7c7c7ae2e2e2e;
+ *((unsigned long *)&__m256i_result[1]) = 0xae2fc7c7aec7c7c7;
+ *((unsigned long *)&__m256i_result[0]) = 0xc7c7c7c7ae2e2e2e;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xd1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x5353535353535353;
+ *((unsigned long *)&__m256i_result[2]) = 0x5353535353535353;
+ *((unsigned long *)&__m256i_result[1]) = 0x5353535353535353;
+ *((unsigned long *)&__m256i_result[0]) = 0x5353535353535353;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x53);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x6d6d6d6d6d6d6d6d;
+ *((unsigned long *)&__m256i_result[2]) = 0x6d6d6d6d6d6d6d6d;
+ *((unsigned long *)&__m256i_result[1]) = 0x6d6d6d6d6d6d6d6d;
+ *((unsigned long *)&__m256i_result[0]) = 0x6d6d6d6d6d6d6d6d;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_result[2]) = 0x8e8e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_result[1]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_result[0]) = 0x8e8e8e8e8e8e8e8e;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x71);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[0]) = 0x7575757575757575;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x75);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xa4a4a4a4a4a4a4a4;
+ *((unsigned long *)&__m256i_result[2]) = 0xa4a4a4a4a4a4a4a4;
+ *((unsigned long *)&__m256i_result[1]) = 0xa4a4a4a4a4a4a4a4;
+ *((unsigned long *)&__m256i_result[0]) = 0xa4a4a4a4a4a4a4a4;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xa4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_result[2]) = 0xa1a1a1a15e5e5e5e;
+ *((unsigned long *)&__m256i_result[1]) = 0xa1a1a1a1a1a1a1a1;
+ *((unsigned long *)&__m256i_result[0]) = 0xa1a1a1a15e5e5e5e;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xa1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256i_result[2]) = 0x8d8d72728d8d8d8d;
+ *((unsigned long *)&__m256i_result[1]) = 0x8d8d72728d8d7272;
+ *((unsigned long *)&__m256i_result[0]) = 0x8d8d72728d8d8d8d;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x8d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0xb3b3b3b3b3b3b3b3;
+ *((unsigned long *)&__m256i_result[2]) = 0xb3b3b3b3b3b3b3b3;
+ *((unsigned long *)&__m256i_result[1]) = 0xb3b3b3b3b3b3b3b3;
+ *((unsigned long *)&__m256i_result[0]) = 0xb3b3b3b3b3b3b3b3;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x4c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f0000ff807f81;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f0000ff807f81;
+ *((unsigned long *)&__m256i_result[3]) = 0x5d5d5d5d5d22a2a2;
+ *((unsigned long *)&__m256i_result[2]) = 0xa2dda2a25d22dd23;
+ *((unsigned long *)&__m256i_result[1]) = 0x5d5d5d5d5d22a2a2;
+ *((unsigned long *)&__m256i_result[0]) = 0xa2dda2a25d22dd23;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xa2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256i_result[2]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256i_result[1]) = 0xd3d3d3d3d3d3d3d3;
+ *((unsigned long *)&__m256i_result[0]) = 0xd3d3d3d3d3d3d3d3;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0xd3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfa15fa15fa15fa14;
+ *((unsigned long *)&__m256i_result[3]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_result[2]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_result[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_result[0]) = 0x8768876887688769;
+ __m256i_out = __lasx_xvxori_b (__m256i_op0, 0x7d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp b/gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
new file mode 100644
index 0000000..2c37aa9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/loongarch-vector.exp
@@ -0,0 +1,42 @@
+#Copyright(C) 2023 Free Software Foundation, Inc.
+
+#This program is free software; you can redistribute it and / or modify
+#it under the terms of the GNU General Public License as published by
+#the Free Software Foundation; either version 3 of the License, or
+#(at your option) any later version.
+#
+#This program is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
+#GNU General Public License for more details.
+#
+#You should have received a copy of the GNU General Public License
+#along with GCC; see the file COPYING3.If not see
+# <http: //www.gnu.org/licenses/>.
+
+#GCC testsuite that uses the `dg.exp' driver.
+
+#Exit immediately if this isn't a LoongArch target.
+if ![istarget loongarch*-*-*] then {
+ return
+}
+
+#Load support procs.
+load_lib gcc-dg.exp
+
+#If a testcase doesn't have special options, use these.
+global DEFAULT_CFLAGS
+if ![info exists DEFAULT_CFLAGS] then {
+ set DEFAULT_CFLAGS " "
+}
+
+#Initialize `dg'.
+dg-init
+
+#Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/lsx/*.\[cS\]]] \
+ " -mlsx" $DEFAULT_CFLAGS
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/lasx/*.\[cS\]]] \
+ " -mlasx" $DEFAULT_CFLAGS
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
new file mode 100644
index 0000000..1301311
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-builtin.c
@@ -0,0 +1,4328 @@
+/* Test builtins for LOONGARCH LSX ASE instructions */
+/* { dg-do compile } */
+/* { dg-options "-mlsx" } */
+/* { dg-final { scan-assembler-times "lsx_vsll_b:.*vsll\\.b.*lsx_vsll_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsll_h:.*vsll\\.h.*lsx_vsll_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsll_w:.*vsll\\.w.*lsx_vsll_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsll_d:.*vsll\\.d.*lsx_vsll_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslli_b:.*vslli\\.b.*lsx_vslli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslli_h:.*vslli\\.h.*lsx_vslli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslli_w:.*vslli\\.w.*lsx_vslli_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslli_d:.*vslli\\.d.*lsx_vslli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsra_b:.*vsra\\.b.*lsx_vsra_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsra_h:.*vsra\\.h.*lsx_vsra_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsra_w:.*vsra\\.w.*lsx_vsra_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsra_d:.*vsra\\.d.*lsx_vsra_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrai_b:.*vsrai\\.b.*lsx_vsrai_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrai_h:.*vsrai\\.h.*lsx_vsrai_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrai_w:.*vsrai\\.w.*lsx_vsrai_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrai_d:.*vsrai\\.d.*lsx_vsrai_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrar_b:.*vsrar\\.b.*lsx_vsrar_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrar_h:.*vsrar\\.h.*lsx_vsrar_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrar_w:.*vsrar\\.w.*lsx_vsrar_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrar_d:.*vsrar\\.d.*lsx_vsrar_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrari_b:.*vsrari\\.b.*lsx_vsrari_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrari_h:.*vsrari\\.h.*lsx_vsrari_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrari_w:.*vsrari\\.w.*lsx_vsrari_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrari_d:.*vsrari\\.d.*lsx_vsrari_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrl_b:.*vsrl\\.b.*lsx_vsrl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrl_h:.*vsrl\\.h.*lsx_vsrl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrl_w:.*vsrl\\.w.*lsx_vsrl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrl_d:.*vsrl\\.d.*lsx_vsrl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrli_b:.*vsrli\\.b.*lsx_vsrli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrli_h:.*vsrli\\.h.*lsx_vsrli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrli_w:.*vsrli\\.w.*lsx_vsrli_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrli_d:.*vsrli\\.d.*lsx_vsrli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlr_b:.*vsrlr\\.b.*lsx_vsrlr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlr_h:.*vsrlr\\.h.*lsx_vsrlr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlr_w:.*vsrlr\\.w.*lsx_vsrlr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlr_d:.*vsrlr\\.d.*lsx_vsrlr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlri_b:.*vsrlri\\.b.*lsx_vsrlri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlri_h:.*vsrlri\\.h.*lsx_vsrlri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlri_w:.*vsrlri\\.w.*lsx_vsrlri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlri_d:.*vsrlri\\.d.*lsx_vsrlri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclr_b:.*vbitclr\\.b.*lsx_vbitclr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclr_h:.*vbitclr\\.h.*lsx_vbitclr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclr_w:.*vbitclr\\.w.*lsx_vbitclr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclr_d:.*vbitclr\\.d.*lsx_vbitclr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclri_b:.*vbitclri\\.b.*lsx_vbitclri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclri_h:.*vbitclri\\.h.*lsx_vbitclri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclri_w:.*vbitclri\\.w.*lsx_vbitclri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitclri_d:.*vbitclri\\.d.*lsx_vbitclri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitset_b:.*vbitset\\.b.*lsx_vbitset_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitset_h:.*vbitset\\.h.*lsx_vbitset_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitset_w:.*vbitset\\.w.*lsx_vbitset_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitset_d:.*vbitset\\.d.*lsx_vbitset_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitseti_b:.*vbitseti\\.b.*lsx_vbitseti_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitseti_h:.*vbitseti\\.h.*lsx_vbitseti_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitseti_w:.*vbitseti\\.w.*lsx_vbitseti_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitseti_d:.*vbitseti\\.d.*lsx_vbitseti_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrev_b:.*vbitrev\\.b.*lsx_vbitrev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrev_h:.*vbitrev\\.h.*lsx_vbitrev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrev_w:.*vbitrev\\.w.*lsx_vbitrev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrev_d:.*vbitrev\\.d.*lsx_vbitrev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrevi_b:.*vbitrevi\\.b.*lsx_vbitrevi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrevi_h:.*vbitrevi\\.h.*lsx_vbitrevi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrevi_w:.*vbitrevi\\.w.*lsx_vbitrevi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitrevi_d:.*vbitrevi\\.d.*lsx_vbitrevi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadd_b:.*vadd\\.b.*lsx_vadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadd_h:.*vadd\\.h.*lsx_vadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadd_w:.*vadd\\.w.*lsx_vadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadd_d:.*vadd\\.d.*lsx_vadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddi_bu:.*vaddi\\.bu.*lsx_vaddi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddi_hu:.*vaddi\\.hu.*lsx_vaddi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddi_wu:.*vaddi\\.wu.*lsx_vaddi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddi_du:.*vaddi\\.du.*lsx_vaddi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsub_b:.*vsub\\.b.*lsx_vsub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsub_h:.*vsub\\.h.*lsx_vsub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsub_w:.*vsub\\.w.*lsx_vsub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsub_d:.*vsub\\.d.*lsx_vsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubi_bu:.*vsubi\\.bu.*lsx_vsubi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubi_hu:.*vsubi\\.hu.*lsx_vsubi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubi_wu:.*vsubi\\.wu.*lsx_vsubi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubi_du:.*vsubi\\.du.*lsx_vsubi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_b:.*vmax\\.b.*lsx_vmax_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_h:.*vmax\\.h.*lsx_vmax_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_w:.*vmax\\.w.*lsx_vmax_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_d:.*vmax\\.d.*lsx_vmax_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_b:.*vmaxi\\.b.*lsx_vmaxi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_h:.*vmaxi\\.h.*lsx_vmaxi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_w:.*vmaxi\\.w.*lsx_vmaxi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_d:.*vmaxi\\.d.*lsx_vmaxi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_bu:.*vmax\\.bu.*lsx_vmax_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_hu:.*vmax\\.hu.*lsx_vmax_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_wu:.*vmax\\.wu.*lsx_vmax_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmax_du:.*vmax\\.du.*lsx_vmax_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_bu:.*vmaxi\\.bu.*lsx_vmaxi_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_hu:.*vmaxi\\.hu.*lsx_vmaxi_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_wu:.*vmaxi\\.wu.*lsx_vmaxi_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaxi_du:.*vmaxi\\.du.*lsx_vmaxi_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_b:.*vmin\\.b.*lsx_vmin_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_h:.*vmin\\.h.*lsx_vmin_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_w:.*vmin\\.w.*lsx_vmin_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_d:.*vmin\\.d.*lsx_vmin_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_b:.*vmini\\.b.*lsx_vmini_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_h:.*vmini\\.h.*lsx_vmini_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_w:.*vmini\\.w.*lsx_vmini_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_d:.*vmini\\.d.*lsx_vmini_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_bu:.*vmin\\.bu.*lsx_vmin_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_hu:.*vmin\\.hu.*lsx_vmin_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_wu:.*vmin\\.wu.*lsx_vmin_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmin_du:.*vmin\\.du.*lsx_vmin_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_bu:.*vmini\\.bu.*lsx_vmini_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_hu:.*vmini\\.hu.*lsx_vmini_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_wu:.*vmini\\.wu.*lsx_vmini_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmini_du:.*vmini\\.du.*lsx_vmini_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseq_b:.*vseq\\.b.*lsx_vseq_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseq_h:.*vseq\\.h.*lsx_vseq_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseq_w:.*vseq\\.w.*lsx_vseq_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseq_d:.*vseq\\.d.*lsx_vseq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseqi_b:.*vseqi\\.b.*lsx_vseqi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseqi_h:.*vseqi\\.h.*lsx_vseqi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseqi_w:.*vseqi\\.w.*lsx_vseqi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vseqi_d:.*vseqi\\.d.*lsx_vseqi_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_b:.*vslti\\.b.*lsx_vslti_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_b:.*vslt\\.b.*lsx_vslt_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_h:.*vslt\\.h.*lsx_vslt_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_w:.*vslt\\.w.*lsx_vslt_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_d:.*vslt\\.d.*lsx_vslt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_h:.*vslti\\.h.*lsx_vslti_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_w:.*vslti\\.w.*lsx_vslti_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_d:.*vslti\\.d.*lsx_vslti_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_bu:.*vslt\\.bu.*lsx_vslt_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_hu:.*vslt\\.hu.*lsx_vslt_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_wu:.*vslt\\.wu.*lsx_vslt_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslt_du:.*vslt\\.du.*lsx_vslt_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_bu:.*vslti\\.bu.*lsx_vslti_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_hu:.*vslti\\.hu.*lsx_vslti_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_wu:.*vslti\\.wu.*lsx_vslti_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslti_du:.*vslti\\.du.*lsx_vslti_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_b:.*vsle\\.b.*lsx_vsle_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_h:.*vsle\\.h.*lsx_vsle_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_w:.*vsle\\.w.*lsx_vsle_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_d:.*vsle\\.d.*lsx_vsle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_b:.*vslei\\.b.*lsx_vslei_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_h:.*vslei\\.h.*lsx_vslei_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_w:.*vslei\\.w.*lsx_vslei_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_d:.*vslei\\.d.*lsx_vslei_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_bu:.*vsle\\.bu.*lsx_vsle_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_hu:.*vsle\\.hu.*lsx_vsle_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_wu:.*vsle\\.wu.*lsx_vsle_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsle_du:.*vsle\\.du.*lsx_vsle_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_bu:.*vslei\\.bu.*lsx_vslei_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_hu:.*vslei\\.hu.*lsx_vslei_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_wu:.*vslei\\.wu.*lsx_vslei_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vslei_du:.*vslei\\.du.*lsx_vslei_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_b:.*vsat\\.b.*lsx_vsat_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_h:.*vsat\\.h.*lsx_vsat_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_w:.*vsat\\.w.*lsx_vsat_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_d:.*vsat\\.d.*lsx_vsat_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_bu:.*vsat\\.bu.*lsx_vsat_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_hu:.*vsat\\.hu.*lsx_vsat_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_wu:.*vsat\\.wu.*lsx_vsat_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsat_du:.*vsat\\.du.*lsx_vsat_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadda_b:.*vadda\\.b.*lsx_vadda_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadda_h:.*vadda\\.h.*lsx_vadda_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadda_w:.*vadda\\.w.*lsx_vadda_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadda_d:.*vadda\\.d.*lsx_vadda_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_b:.*vsadd\\.b.*lsx_vsadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_h:.*vsadd\\.h.*lsx_vsadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_w:.*vsadd\\.w.*lsx_vsadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_d:.*vsadd\\.d.*lsx_vsadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_bu:.*vsadd\\.bu.*lsx_vsadd_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_hu:.*vsadd\\.hu.*lsx_vsadd_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_wu:.*vsadd\\.wu.*lsx_vsadd_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsadd_du:.*vsadd\\.du.*lsx_vsadd_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_b:.*vavg\\.b.*lsx_vavg_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_h:.*vavg\\.h.*lsx_vavg_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_w:.*vavg\\.w.*lsx_vavg_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_d:.*vavg\\.d.*lsx_vavg_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_bu:.*vavg\\.bu.*lsx_vavg_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_hu:.*vavg\\.hu.*lsx_vavg_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_wu:.*vavg\\.wu.*lsx_vavg_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavg_du:.*vavg\\.du.*lsx_vavg_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_b:.*vavgr\\.b.*lsx_vavgr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_h:.*vavgr\\.h.*lsx_vavgr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_w:.*vavgr\\.w.*lsx_vavgr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_d:.*vavgr\\.d.*lsx_vavgr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_bu:.*vavgr\\.bu.*lsx_vavgr_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_hu:.*vavgr\\.hu.*lsx_vavgr_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_wu:.*vavgr\\.wu.*lsx_vavgr_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vavgr_du:.*vavgr\\.du.*lsx_vavgr_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_b:.*vssub\\.b.*lsx_vssub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_h:.*vssub\\.h.*lsx_vssub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_w:.*vssub\\.w.*lsx_vssub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_d:.*vssub\\.d.*lsx_vssub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_bu:.*vssub\\.bu.*lsx_vssub_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_hu:.*vssub\\.hu.*lsx_vssub_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_wu:.*vssub\\.wu.*lsx_vssub_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssub_du:.*vssub\\.du.*lsx_vssub_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_b:.*vabsd\\.b.*lsx_vabsd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_h:.*vabsd\\.h.*lsx_vabsd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_w:.*vabsd\\.w.*lsx_vabsd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_d:.*vabsd\\.d.*lsx_vabsd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_bu:.*vabsd\\.bu.*lsx_vabsd_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_hu:.*vabsd\\.hu.*lsx_vabsd_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_wu:.*vabsd\\.wu.*lsx_vabsd_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vabsd_du:.*vabsd\\.du.*lsx_vabsd_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmul_b:.*vmul\\.b.*lsx_vmul_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmul_h:.*vmul\\.h.*lsx_vmul_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmul_w:.*vmul\\.w.*lsx_vmul_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmul_d:.*vmul\\.d.*lsx_vmul_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmadd_b:.*vmadd\\.b.*lsx_vmadd_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmadd_h:.*vmadd\\.h.*lsx_vmadd_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmadd_w:.*vmadd\\.w.*lsx_vmadd_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmadd_d:.*vmadd\\.d.*lsx_vmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmsub_b:.*vmsub\\.b.*lsx_vmsub_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmsub_h:.*vmsub\\.h.*lsx_vmsub_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmsub_w:.*vmsub\\.w.*lsx_vmsub_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmsub_d:.*vmsub\\.d.*lsx_vmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_b:.*vdiv\\.b.*lsx_vdiv_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_h:.*vdiv\\.h.*lsx_vdiv_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_w:.*vdiv\\.w.*lsx_vdiv_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_d:.*vdiv\\.d.*lsx_vdiv_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_bu:.*vdiv\\.bu.*lsx_vdiv_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_hu:.*vdiv\\.hu.*lsx_vdiv_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_wu:.*vdiv\\.wu.*lsx_vdiv_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vdiv_du:.*vdiv\\.du.*lsx_vdiv_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_h_b:.*vhaddw\\.h\\.b.*lsx_vhaddw_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_w_h:.*vhaddw\\.w\\.h.*lsx_vhaddw_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_d_w:.*vhaddw\\.d\\.w.*lsx_vhaddw_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_hu_bu:.*vhaddw\\.hu\\.bu.*lsx_vhaddw_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_wu_hu:.*vhaddw\\.wu\\.hu.*lsx_vhaddw_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_du_wu:.*vhaddw\\.du\\.wu.*lsx_vhaddw_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_h_b:.*vhsubw\\.h\\.b.*lsx_vhsubw_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_w_h:.*vhsubw\\.w\\.h.*lsx_vhsubw_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_d_w:.*vhsubw\\.d\\.w.*lsx_vhsubw_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_hu_bu:.*vhsubw\\.hu\\.bu.*lsx_vhsubw_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_wu_hu:.*vhsubw\\.wu\\.hu.*lsx_vhsubw_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_du_wu:.*vhsubw\\.du\\.wu.*lsx_vhsubw_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_b:.*vmod\\.b.*lsx_vmod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_h:.*vmod\\.h.*lsx_vmod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_w:.*vmod\\.w.*lsx_vmod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_d:.*vmod\\.d.*lsx_vmod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_bu:.*vmod\\.bu.*lsx_vmod_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_hu:.*vmod\\.hu.*lsx_vmod_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_wu:.*vmod\\.wu.*lsx_vmod_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmod_du:.*vmod\\.du.*lsx_vmod_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplve_b:.*vreplve\\.b.*lsx_vreplve_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplve_h:.*vreplve\\.h.*lsx_vreplve_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplve_w:.*vreplve\\.w.*lsx_vreplve_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplve_d:.*vreplve\\.d.*lsx_vreplve_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplvei_b:.*vreplvei\\.b.*lsx_vreplvei_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplvei_h:.*vreplvei\\.h.*lsx_vreplvei_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplvei_w:.*vreplvei\\.w.*lsx_vreplvei_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplvei_d:.*vreplvei\\.d.*lsx_vreplvei_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickev_b:.*vpickev\\.b.*lsx_vpickev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickev_h:.*vpickev\\.h.*lsx_vpickev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickev_w:.*vpickev\\.w.*lsx_vpickev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickev_d:.*vilvl\\.d.*lsx_vpickev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickod_b:.*vpickod\\.b.*lsx_vpickod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickod_h:.*vpickod\\.h.*lsx_vpickod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickod_w:.*vpickod\\.w.*lsx_vpickod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickod_d:.*vilvh\\.d.*lsx_vpickod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvh_b:.*vilvh\\.b.*lsx_vilvh_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvh_h:.*vilvh\\.h.*lsx_vilvh_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvh_w:.*vilvh\\.w.*lsx_vilvh_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvh_d:.*vilvh\\.d.*lsx_vilvh_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvl_b:.*vilvl\\.b.*lsx_vilvl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvl_h:.*vilvl\\.h.*lsx_vilvl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvl_w:.*vilvl\\.w.*lsx_vilvl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vilvl_d:.*vilvl\\.d.*lsx_vilvl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackev_b:.*vpackev\\.b.*lsx_vpackev_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackev_h:.*vpackev\\.h.*lsx_vpackev_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackev_w:.*vpackev\\.w.*lsx_vpackev_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackev_d:.*vilvl\\.d.*lsx_vpackev_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackod_b:.*vpackod\\.b.*lsx_vpackod_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackod_h:.*vpackod\\.h.*lsx_vpackod_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackod_w:.*vpackod\\.w.*lsx_vpackod_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpackod_d:.*vilvh\\.d.*lsx_vpackod_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf_h:.*vshuf\\.h.*lsx_vshuf_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf_w:.*vshuf\\.w.*lsx_vshuf_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf_d:.*vshuf\\.d.*lsx_vshuf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vand_v:.*vand\\.v.*lsx_vand_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vandi_b:.*vandi\\.b.*lsx_vandi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vor_v:.*vor\\.v.*lsx_vor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vori_b:.*vbitseti\\.b.*lsx_vori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vnor_v:.*vnor\\.v.*lsx_vnor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vnori_b:.*vnori\\.b.*lsx_vnori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vxor_v:.*vxor\\.v.*lsx_vxor_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vxori_b:.*vbitrevi\\.b.*lsx_vxori_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitsel_v:.*vbitsel\\.v.*lsx_vbitsel_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbitseli_b:.*vbitseli\\.b.*lsx_vbitseli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf4i_b:.*vshuf4i\\.b.*lsx_vshuf4i_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf4i_h:.*vshuf4i\\.h.*lsx_vshuf4i_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf4i_w:.*vshuf4i\\.w.*lsx_vshuf4i_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplgr2vr_b:.*vreplgr2vr\\.b.*lsx_vreplgr2vr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplgr2vr_h:.*vreplgr2vr\\.h.*lsx_vreplgr2vr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplgr2vr_w:.*vreplgr2vr\\.w.*lsx_vreplgr2vr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vreplgr2vr_d:.*vreplgr2vr\\.d.*lsx_vreplgr2vr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpcnt_b:.*vpcnt\\.b.*lsx_vpcnt_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpcnt_h:.*vpcnt\\.h.*lsx_vpcnt_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpcnt_w:.*vpcnt\\.w.*lsx_vpcnt_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpcnt_d:.*vpcnt\\.d.*lsx_vpcnt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclo_b:.*vclo\\.b.*lsx_vclo_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclo_h:.*vclo\\.h.*lsx_vclo_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclo_w:.*vclo\\.w.*lsx_vclo_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclo_d:.*vclo\\.d.*lsx_vclo_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclz_b:.*vclz\\.b.*lsx_vclz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclz_h:.*vclz\\.h.*lsx_vclz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclz_w:.*vclz\\.w.*lsx_vclz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vclz_d:.*vclz\\.d.*lsx_vclz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_b:.*vpickve2gr\\.b.*lsx_vpickve2gr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_h:.*vpickve2gr\\.h.*lsx_vpickve2gr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_w:.*vpickve2gr\\.w.*lsx_vpickve2gr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_d:.*vpickve2gr\\.d.*lsx_vpickve2gr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_bu:.*vpickve2gr\\.bu.*lsx_vpickve2gr_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_hu:.*vpickve2gr\\.hu.*lsx_vpickve2gr_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_wu:.*vpickve2gr\\.wu.*lsx_vpickve2gr_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpickve2gr_du:.*vpickve2gr\\.du.*lsx_vpickve2gr_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vinsgr2vr_b:.*vinsgr2vr\\.b.*lsx_vinsgr2vr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vinsgr2vr_h:.*vinsgr2vr\\.h.*lsx_vinsgr2vr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vinsgr2vr_w:.*vinsgr2vr\\.w.*lsx_vinsgr2vr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vinsgr2vr_d:.*vinsgr2vr\\.d.*lsx_vinsgr2vr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfadd_s:.*vfadd\\.s.*lsx_vfadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfadd_d:.*vfadd\\.d.*lsx_vfadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfsub_s:.*vfsub\\.s.*lsx_vfsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfsub_d:.*vfsub\\.d.*lsx_vfsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmul_s:.*vfmul\\.s.*lsx_vfmul_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmul_d:.*vfmul\\.d.*lsx_vfmul_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfdiv_s:.*vfdiv\\.s.*lsx_vfdiv_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfdiv_d:.*vfdiv\\.d.*lsx_vfdiv_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvt_h_s:.*vfcvt\\.h\\.s.*lsx_vfcvt_h_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvt_s_d:.*vfcvt\\.s\\.d.*lsx_vfcvt_s_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmin_s:.*vfmin\\.s.*lsx_vfmin_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmin_d:.*vfmin\\.d.*lsx_vfmin_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmina_s:.*vfmina\\.s.*lsx_vfmina_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmina_d:.*vfmina\\.d.*lsx_vfmina_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmax_s:.*vfmax\\.s.*lsx_vfmax_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmax_d:.*vfmax\\.d.*lsx_vfmax_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmaxa_s:.*vfmaxa\\.s.*lsx_vfmaxa_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmaxa_d:.*vfmaxa\\.d.*lsx_vfmaxa_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfclass_s:.*vfclass\\.s.*lsx_vfclass_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfclass_d:.*vfclass\\.d.*lsx_vfclass_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfsqrt_s:.*vfsqrt\\.s.*lsx_vfsqrt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfsqrt_d:.*vfsqrt\\.d.*lsx_vfsqrt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrecip_s:.*vfrecip\\.s.*lsx_vfrecip_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrecip_d:.*vfrecip\\.d.*lsx_vfrecip_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrint_s:.*vfrint\\.s.*lsx_vfrint_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrint_d:.*vfrint\\.d.*lsx_vfrint_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrsqrt_s:.*vfrsqrt\\.s.*lsx_vfrsqrt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrsqrt_d:.*vfrsqrt\\.d.*lsx_vfrsqrt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vflogb_s:.*vflogb\\.s.*lsx_vflogb_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vflogb_d:.*vflogb\\.d.*lsx_vflogb_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvth_s_h:.*vfcvth\\.s\\.h.*lsx_vfcvth_s_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvth_d_s:.*vfcvth\\.d\\.s.*lsx_vfcvth_d_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvtl_s_h:.*vfcvtl\\.s\\.h.*lsx_vfcvtl_s_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcvtl_d_s:.*vfcvtl\\.d\\.s.*lsx_vfcvtl_d_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftint_w_s:.*vftint\\.w\\.s.*lsx_vftint_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftint_l_d:.*vftint\\.l\\.d.*lsx_vftint_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftint_wu_s:.*vftint\\.wu\\.s.*lsx_vftint_wu_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftint_lu_d:.*vftint\\.lu\\.d.*lsx_vftint_lu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrz_w_s:.*vftintrz\\.w\\.s.*lsx_vftintrz_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrz_l_d:.*vftintrz\\.l\\.d.*lsx_vftintrz_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrz_wu_s:.*vftintrz\\.wu\\.s.*lsx_vftintrz_wu_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrz_lu_d:.*vftintrz\\.lu\\.d.*lsx_vftintrz_lu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffint_s_w:.*vffint\\.s\\.w.*lsx_vffint_s_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffint_d_l:.*vffint\\.d\\.l.*lsx_vffint_d_l" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffint_s_wu:.*vffint\\.s\\.wu.*lsx_vffint_s_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffint_d_lu:.*vffint\\.d\\.lu.*lsx_vffint_d_lu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vandn_v:.*vandn\\.v.*lsx_vandn_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vneg_b:.*vneg\\.b.*lsx_vneg_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vneg_h:.*vneg\\.h.*lsx_vneg_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vneg_w:.*vneg\\.w.*lsx_vneg_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vneg_d:.*vneg\\.d.*lsx_vneg_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_b:.*vmuh\\.b.*lsx_vmuh_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_h:.*vmuh\\.h.*lsx_vmuh_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_w:.*vmuh\\.w.*lsx_vmuh_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_d:.*vmuh\\.d.*lsx_vmuh_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_bu:.*vmuh\\.bu.*lsx_vmuh_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_hu:.*vmuh\\.hu.*lsx_vmuh_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_wu:.*vmuh\\.wu.*lsx_vmuh_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmuh_du:.*vmuh\\.du.*lsx_vmuh_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_h_b:.*vsllwil\\.h\\.b.*lsx_vsllwil_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_w_h:.*vsllwil\\.w\\.h.*lsx_vsllwil_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_d_w:.*vsllwil\\.d\\.w.*lsx_vsllwil_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_hu_bu:.*vsllwil\\.hu\\.bu.*lsx_vsllwil_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_wu_hu:.*vsllwil\\.wu\\.hu.*lsx_vsllwil_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsllwil_du_wu:.*vsllwil\\.du\\.wu.*lsx_vsllwil_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsran_b_h:.*vsran\\.b\\.h.*lsx_vsran_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsran_h_w:.*vsran\\.h\\.w.*lsx_vsran_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsran_w_d:.*vsran\\.w\\.d.*lsx_vsran_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_b_h:.*vssran\\.b\\.h.*lsx_vssran_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_h_w:.*vssran\\.h\\.w.*lsx_vssran_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_w_d:.*vssran\\.w\\.d.*lsx_vssran_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_bu_h:.*vssran\\.bu\\.h.*lsx_vssran_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_hu_w:.*vssran\\.hu\\.w.*lsx_vssran_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssran_wu_d:.*vssran\\.wu\\.d.*lsx_vssran_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarn_b_h:.*vsrarn\\.b\\.h.*lsx_vsrarn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarn_h_w:.*vsrarn\\.h\\.w.*lsx_vsrarn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarn_w_d:.*vsrarn\\.w\\.d.*lsx_vsrarn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_b_h:.*vssrarn\\.b\\.h.*lsx_vssrarn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_h_w:.*vssrarn\\.h\\.w.*lsx_vssrarn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_w_d:.*vssrarn\\.w\\.d.*lsx_vssrarn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_bu_h:.*vssrarn\\.bu\\.h.*lsx_vssrarn_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_hu_w:.*vssrarn\\.hu\\.w.*lsx_vssrarn_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarn_wu_d:.*vssrarn\\.wu\\.d.*lsx_vssrarn_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrln_b_h:.*vsrln\\.b\\.h.*lsx_vsrln_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrln_h_w:.*vsrln\\.h\\.w.*lsx_vsrln_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrln_w_d:.*vsrln\\.w\\.d.*lsx_vsrln_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_bu_h:.*vssrln\\.bu\\.h.*lsx_vssrln_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_hu_w:.*vssrln\\.hu\\.w.*lsx_vssrln_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_wu_d:.*vssrln\\.wu\\.d.*lsx_vssrln_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrn_b_h:.*vsrlrn\\.b\\.h.*lsx_vsrlrn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrn_h_w:.*vsrlrn\\.h\\.w.*lsx_vsrlrn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrn_w_d:.*vsrlrn\\.w\\.d.*lsx_vsrlrn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_bu_h:.*vssrlrn\\.bu\\.h.*lsx_vssrlrn_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_hu_w:.*vssrlrn\\.hu\\.w.*lsx_vssrlrn_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_wu_d:.*vssrlrn\\.wu\\.d.*lsx_vssrlrn_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrstpi_b:.*vfrstpi\\.b.*lsx_vfrstpi_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrstpi_h:.*vfrstpi\\.h.*lsx_vfrstpi_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrstp_b:.*vfrstp\\.b.*lsx_vfrstp_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrstp_h:.*vfrstp\\.h.*lsx_vfrstp_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf4i_d:.*vshuf4i\\.d.*lsx_vshuf4i_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbsrl_v:.*vbsrl\\.v.*lsx_vbsrl_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vbsll_v:.*vbsll\\.v.*lsx_vbsll_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextrins_b:.*vextrins\\.b.*lsx_vextrins_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextrins_h:.*vextrins\\.h.*lsx_vextrins_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextrins_w:.*vextrins\\.w.*lsx_vextrins_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextrins_d:.*vextrins\\.d.*lsx_vextrins_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmskltz_b:.*vmskltz\\.b.*lsx_vmskltz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmskltz_h:.*vmskltz\\.h.*lsx_vmskltz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmskltz_w:.*vmskltz\\.w.*lsx_vmskltz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmskltz_d:.*vmskltz\\.d.*lsx_vmskltz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsigncov_b:.*vsigncov\\.b.*lsx_vsigncov_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsigncov_h:.*vsigncov\\.h.*lsx_vsigncov_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsigncov_w:.*vsigncov\\.w.*lsx_vsigncov_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsigncov_d:.*vsigncov\\.d.*lsx_vsigncov_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmadd_s:.*vfmadd\\.s.*lsx_vfmadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmadd_d:.*vfmadd\\.d.*lsx_vfmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmsub_s:.*vfmsub\\.s.*lsx_vfmsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfmsub_d:.*vfmsub\\.d.*lsx_vfmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfnmadd_s:.*vfnmadd\\.s.*lsx_vfnmadd_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfnmadd_d:.*vfnmadd\\.d.*lsx_vfnmadd_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfnmsub_s:.*vfnmsub\\.s.*lsx_vfnmsub_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfnmsub_d:.*vfnmsub\\.d.*lsx_vfnmsub_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrne_w_s:.*vftintrne\\.w\\.s.*lsx_vftintrne_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrne_l_d:.*vftintrne\\.l\\.d.*lsx_vftintrne_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrp_w_s:.*vftintrp\\.w\\.s.*lsx_vftintrp_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrp_l_d:.*vftintrp\\.l\\.d.*lsx_vftintrp_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrm_w_s:.*vftintrm\\.w\\.s.*lsx_vftintrm_w_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrm_l_d:.*vftintrm\\.l\\.d.*lsx_vftintrm_l_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftint_w_d:.*vftint\\.w\\.d.*lsx_vftint_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffint_s_l:.*vffint\\.s\\.l.*lsx_vffint_s_l" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrz_w_d:.*vftintrz\\.w\\.d.*lsx_vftintrz_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrp_w_d:.*vftintrp\\.w\\.d.*lsx_vftintrp_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrm_w_d:.*vftintrm\\.w\\.d.*lsx_vftintrm_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrne_w_d:.*vftintrne\\.w\\.d.*lsx_vftintrne_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintl_l_s:.*vftintl\\.l\\.s.*lsx_vftintl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftinth_l_s:.*vftinth\\.l\\.s.*lsx_vftinth_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffinth_d_w:.*vffinth\\.d\\.w.*lsx_vffinth_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vffintl_d_w:.*vffintl\\.d\\.w.*lsx_vffintl_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrzl_l_s:.*vftintrzl\\.l\\.s.*lsx_vftintrzl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrzh_l_s:.*vftintrzh\\.l\\.s.*lsx_vftintrzh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrpl_l_s:.*vftintrpl\\.l\\.s.*lsx_vftintrpl_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrph_l_s:.*vftintrph\\.l\\.s.*lsx_vftintrph_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrml_l_s:.*vftintrml\\.l\\.s.*lsx_vftintrml_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrmh_l_s:.*vftintrmh\\.l\\.s.*lsx_vftintrmh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrnel_l_s:.*vftintrnel\\.l\\.s.*lsx_vftintrnel_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vftintrneh_l_s:.*vftintrneh\\.l\\.s.*lsx_vftintrneh_l_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrne_s:.*vfrintrne\\.s.*lsx_vfrintrne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrne_d:.*vfrintrne\\.d.*lsx_vfrintrne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrz_s:.*vfrintrz\\.s.*lsx_vfrintrz_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrz_d:.*vfrintrz\\.d.*lsx_vfrintrz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrp_s:.*vfrintrp\\.s.*lsx_vfrintrp_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrp_d:.*vfrintrp\\.d.*lsx_vfrintrp_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrm_s:.*vfrintrm\\.s.*lsx_vfrintrm_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfrintrm_d:.*vfrintrm\\.d.*lsx_vfrintrm_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vstelm_b:.*vstelm\\.b.*lsx_vstelm_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vstelm_h:.*vstelm\\.h.*lsx_vstelm_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vstelm_w:.*vstelm\\.w.*lsx_vstelm_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vstelm_d:.*vstelm\\.d.*lsx_vstelm_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_d_w:.*vaddwev\\.d\\.w.*lsx_vaddwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_w_h:.*vaddwev\\.w\\.h.*lsx_vaddwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_h_b:.*vaddwev\\.h\\.b.*lsx_vaddwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_d_w:.*vaddwod\\.d\\.w.*lsx_vaddwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_w_h:.*vaddwod\\.w\\.h.*lsx_vaddwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_h_b:.*vaddwod\\.h\\.b.*lsx_vaddwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_d_wu:.*vaddwev\\.d\\.wu.*lsx_vaddwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_w_hu:.*vaddwev\\.w\\.hu.*lsx_vaddwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_h_bu:.*vaddwev\\.h\\.bu.*lsx_vaddwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_d_wu:.*vaddwod\\.d\\.wu.*lsx_vaddwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_w_hu:.*vaddwod\\.w\\.hu.*lsx_vaddwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_h_bu:.*vaddwod\\.h\\.bu.*lsx_vaddwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_d_wu_w:.*vaddwev\\.d\\.wu\\.w.*lsx_vaddwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_w_hu_h:.*vaddwev\\.w\\.hu\\.h.*lsx_vaddwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_h_bu_b:.*vaddwev\\.h\\.bu\\.b.*lsx_vaddwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_d_wu_w:.*vaddwod\\.d\\.wu\\.w.*lsx_vaddwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_w_hu_h:.*vaddwod\\.w\\.hu\\.h.*lsx_vaddwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_h_bu_b:.*vaddwod\\.h\\.bu\\.b.*lsx_vaddwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_d_w:.*vsubwev\\.d\\.w.*lsx_vsubwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_w_h:.*vsubwev\\.w\\.h.*lsx_vsubwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_h_b:.*vsubwev\\.h\\.b.*lsx_vsubwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_d_w:.*vsubwod\\.d\\.w.*lsx_vsubwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_w_h:.*vsubwod\\.w\\.h.*lsx_vsubwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_h_b:.*vsubwod\\.h\\.b.*lsx_vsubwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_d_wu:.*vsubwev\\.d\\.wu.*lsx_vsubwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_w_hu:.*vsubwev\\.w\\.hu.*lsx_vsubwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_h_bu:.*vsubwev\\.h\\.bu.*lsx_vsubwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_d_wu:.*vsubwod\\.d\\.wu.*lsx_vsubwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_w_hu:.*vsubwod\\.w\\.hu.*lsx_vsubwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_h_bu:.*vsubwod\\.h\\.bu.*lsx_vsubwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_q_d:.*vaddwev\\.q\\.d.*lsx_vaddwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_q_d:.*vaddwod\\.q\\.d.*lsx_vaddwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_q_du:.*vaddwev\\.q\\.du.*lsx_vaddwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_q_du:.*vaddwod\\.q\\.du.*lsx_vaddwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_q_d:.*vsubwev\\.q\\.d.*lsx_vsubwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_q_d:.*vsubwod\\.q\\.d.*lsx_vsubwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwev_q_du:.*vsubwev\\.q\\.du.*lsx_vsubwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsubwod_q_du:.*vsubwod\\.q\\.du.*lsx_vsubwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwev_q_du_d:.*vaddwev\\.q\\.du\\.d.*lsx_vaddwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vaddwod_q_du_d:.*vaddwod\\.q\\.du\\.d.*lsx_vaddwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_d_w:.*vmulwev\\.d\\.w.*lsx_vmulwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_w_h:.*vmulwev\\.w\\.h.*lsx_vmulwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_h_b:.*vmulwev\\.h\\.b.*lsx_vmulwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_d_w:.*vmulwod\\.d\\.w.*lsx_vmulwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_w_h:.*vmulwod\\.w\\.h.*lsx_vmulwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_h_b:.*vmulwod\\.h\\.b.*lsx_vmulwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_d_wu:.*vmulwev\\.d\\.wu.*lsx_vmulwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_w_hu:.*vmulwev\\.w\\.hu.*lsx_vmulwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_h_bu:.*vmulwev\\.h\\.bu.*lsx_vmulwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_d_wu:.*vmulwod\\.d\\.wu.*lsx_vmulwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_w_hu:.*vmulwod\\.w\\.hu.*lsx_vmulwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_h_bu:.*vmulwod\\.h\\.bu.*lsx_vmulwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_d_wu_w:.*vmulwev\\.d\\.wu\\.w.*lsx_vmulwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_w_hu_h:.*vmulwev\\.w\\.hu\\.h.*lsx_vmulwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_h_bu_b:.*vmulwev\\.h\\.bu\\.b.*lsx_vmulwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_d_wu_w:.*vmulwod\\.d\\.wu\\.w.*lsx_vmulwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_w_hu_h:.*vmulwod\\.w\\.hu\\.h.*lsx_vmulwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_h_bu_b:.*vmulwod\\.h\\.bu\\.b.*lsx_vmulwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_q_d:.*vmulwev\\.q\\.d.*lsx_vmulwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_q_d:.*vmulwod\\.q\\.d.*lsx_vmulwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_q_du:.*vmulwev\\.q\\.du.*lsx_vmulwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_q_du:.*vmulwod\\.q\\.du.*lsx_vmulwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwev_q_du_d:.*vmulwev\\.q\\.du\\.d.*lsx_vmulwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmulwod_q_du_d:.*vmulwod\\.q\\.du\\.d.*lsx_vmulwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_q_d:.*vhaddw\\.q\\.d.*lsx_vhaddw_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhaddw_qu_du:.*vhaddw\\.qu\\.du.*lsx_vhaddw_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_q_d:.*vhsubw\\.q\\.d.*lsx_vhsubw_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vhsubw_qu_du:.*vhsubw\\.qu\\.du.*lsx_vhsubw_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_d_w:.*vmaddwev\\.d\\.w.*lsx_vmaddwev_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_w_h:.*vmaddwev\\.w\\.h.*lsx_vmaddwev_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_h_b:.*vmaddwev\\.h\\.b.*lsx_vmaddwev_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_d_wu:.*vmaddwev\\.d\\.wu.*lsx_vmaddwev_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_w_hu:.*vmaddwev\\.w\\.hu.*lsx_vmaddwev_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_h_bu:.*vmaddwev\\.h\\.bu.*lsx_vmaddwev_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_d_w:.*vmaddwod\\.d\\.w.*lsx_vmaddwod_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_w_h:.*vmaddwod\\.w\\.h.*lsx_vmaddwod_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_h_b:.*vmaddwod\\.h\\.b.*lsx_vmaddwod_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_d_wu:.*vmaddwod\\.d\\.wu.*lsx_vmaddwod_d_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_w_hu:.*vmaddwod\\.w\\.hu.*lsx_vmaddwod_w_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_h_bu:.*vmaddwod\\.h\\.bu.*lsx_vmaddwod_h_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_d_wu_w:.*vmaddwev\\.d\\.wu\\.w.*lsx_vmaddwev_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_w_hu_h:.*vmaddwev\\.w\\.hu\\.h.*lsx_vmaddwev_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_h_bu_b:.*vmaddwev\\.h\\.bu\\.b.*lsx_vmaddwev_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_d_wu_w:.*vmaddwod\\.d\\.wu\\.w.*lsx_vmaddwod_d_wu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_w_hu_h:.*vmaddwod\\.w\\.hu\\.h.*lsx_vmaddwod_w_hu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_h_bu_b:.*vmaddwod\\.h\\.bu\\.b.*lsx_vmaddwod_h_bu_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_q_d:.*vmaddwev\\.q\\.d.*lsx_vmaddwev_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_q_d:.*vmaddwod\\.q\\.d.*lsx_vmaddwod_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_q_du:.*vmaddwev\\.q\\.du.*lsx_vmaddwev_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_q_du:.*vmaddwod\\.q\\.du.*lsx_vmaddwod_q_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwev_q_du_d:.*vmaddwev\\.q\\.du\\.d.*lsx_vmaddwev_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmaddwod_q_du_d:.*vmaddwod\\.q\\.du\\.d.*lsx_vmaddwod_q_du_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotr_b:.*vrotr\\.b.*lsx_vrotr_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotr_h:.*vrotr\\.h.*lsx_vrotr_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotr_w:.*vrotr\\.w.*lsx_vrotr_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotr_d:.*vrotr\\.d.*lsx_vrotr_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vadd_q:.*vadd\\.q.*lsx_vadd_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsub_q:.*vsub\\.q.*lsx_vsub_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldrepl_b:.*vldrepl\\.b.*lsx_vldrepl_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldrepl_h:.*vldrepl\\.h.*lsx_vldrepl_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldrepl_w:.*vldrepl\\.w.*lsx_vldrepl_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldrepl_d:.*vldrepl\\.d.*lsx_vldrepl_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmskgez_b:.*vmskgez\\.b.*lsx_vmskgez_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vmsknz_b:.*vmsknz\\.b.*lsx_vmsknz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_h_b:.*vexth\\.h\\.b.*lsx_vexth_h_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_w_h:.*vexth\\.w\\.h.*lsx_vexth_w_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_d_w:.*vexth\\.d\\.w.*lsx_vexth_d_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_q_d:.*vexth\\.q\\.d.*lsx_vexth_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_hu_bu:.*vexth\\.hu\\.bu.*lsx_vexth_hu_bu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_wu_hu:.*vexth\\.wu\\.hu.*lsx_vexth_wu_hu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_du_wu:.*vexth\\.du\\.wu.*lsx_vexth_du_wu" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vexth_qu_du:.*vexth\\.qu\\.du.*lsx_vexth_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotri_b:.*vrotri\\.b.*lsx_vrotri_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotri_h:.*vrotri\\.h.*lsx_vrotri_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotri_w:.*vrotri\\.w.*lsx_vrotri_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrotri_d:.*vrotri\\.d.*lsx_vrotri_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextl_q_d:.*vextl\\.q\\.d.*lsx_vextl_q_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlni_b_h:.*vsrlni\\.b\\.h.*lsx_vsrlni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlni_h_w:.*vsrlni\\.h\\.w.*lsx_vsrlni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlni_w_d:.*vsrlni\\.w\\.d.*lsx_vsrlni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlni_d_q:.*vsrlni\\.d\\.q.*lsx_vsrlni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrni_b_h:.*vsrlrni\\.b\\.h.*lsx_vsrlrni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrni_h_w:.*vsrlrni\\.h\\.w.*lsx_vsrlrni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrni_w_d:.*vsrlrni\\.w\\.d.*lsx_vsrlrni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrlrni_d_q:.*vsrlrni\\.d\\.q.*lsx_vsrlrni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_b_h:.*vssrlni\\.b\\.h.*lsx_vssrlni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_h_w:.*vssrlni\\.h\\.w.*lsx_vssrlni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_w_d:.*vssrlni\\.w\\.d.*lsx_vssrlni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_d_q:.*vssrlni\\.d\\.q.*lsx_vssrlni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_bu_h:.*vssrlni\\.bu\\.h.*lsx_vssrlni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_hu_w:.*vssrlni\\.hu\\.w.*lsx_vssrlni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_wu_d:.*vssrlni\\.wu\\.d.*lsx_vssrlni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlni_du_q:.*vssrlni\\.du\\.q.*lsx_vssrlni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_b_h:.*vssrlrni\\.b\\.h.*lsx_vssrlrni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_h_w:.*vssrlrni\\.h\\.w.*lsx_vssrlrni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_w_d:.*vssrlrni\\.w\\.d.*lsx_vssrlrni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_d_q:.*vssrlrni\\.d\\.q.*lsx_vssrlrni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_bu_h:.*vssrlrni\\.bu\\.h.*lsx_vssrlrni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_hu_w:.*vssrlrni\\.hu\\.w.*lsx_vssrlrni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_wu_d:.*vssrlrni\\.wu\\.d.*lsx_vssrlrni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrni_du_q:.*vssrlrni\\.du\\.q.*lsx_vssrlrni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrani_b_h:.*vsrani\\.b\\.h.*lsx_vsrani_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrani_h_w:.*vsrani\\.h\\.w.*lsx_vsrani_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrani_w_d:.*vsrani\\.w\\.d.*lsx_vsrani_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrani_d_q:.*vsrani\\.d\\.q.*lsx_vsrani_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarni_b_h:.*vsrarni\\.b\\.h.*lsx_vsrarni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarni_h_w:.*vsrarni\\.h\\.w.*lsx_vsrarni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarni_w_d:.*vsrarni\\.w\\.d.*lsx_vsrarni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vsrarni_d_q:.*vsrarni\\.d\\.q.*lsx_vsrarni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_b_h:.*vssrani\\.b\\.h.*lsx_vssrani_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_h_w:.*vssrani\\.h\\.w.*lsx_vssrani_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_w_d:.*vssrani\\.w\\.d.*lsx_vssrani_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_d_q:.*vssrani\\.d\\.q.*lsx_vssrani_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_bu_h:.*vssrani\\.bu\\.h.*lsx_vssrani_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_hu_w:.*vssrani\\.hu\\.w.*lsx_vssrani_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_wu_d:.*vssrani\\.wu\\.d.*lsx_vssrani_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrani_du_q:.*vssrani\\.du\\.q.*lsx_vssrani_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_b_h:.*vssrarni\\.b\\.h.*lsx_vssrarni_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_h_w:.*vssrarni\\.h\\.w.*lsx_vssrarni_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_w_d:.*vssrarni\\.w\\.d.*lsx_vssrarni_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_d_q:.*vssrarni\\.d\\.q.*lsx_vssrarni_d_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_bu_h:.*vssrarni\\.bu\\.h.*lsx_vssrarni_bu_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_hu_w:.*vssrarni\\.hu\\.w.*lsx_vssrarni_hu_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_wu_d:.*vssrarni\\.wu\\.d.*lsx_vssrarni_wu_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrarni_du_q:.*vssrarni\\.du\\.q.*lsx_vssrarni_du_q" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vpermi_w:.*vpermi\\.w.*lsx_vpermi_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vld:.*vld.*lsx_vld" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vst:.*vst.*lsx_vst" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_b_h:.*vssrlrn\\.b\\.h.*lsx_vssrlrn_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_h_w:.*vssrlrn\\.h\\.w.*lsx_vssrlrn_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrlrn_w_d:.*vssrlrn\\.w\\.d.*lsx_vssrlrn_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_b_h:.*vssrln\\.b\\.h.*lsx_vssrln_b_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_h_w:.*vssrln\\.h\\.w.*lsx_vssrln_h_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vssrln_w_d:.*vssrln\\.w\\.d.*lsx_vssrln_w_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vorn_v:.*vorn\\.v.*lsx_vorn_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldi:.*vldi.*lsx_vldi" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vshuf_b:.*vshuf\\.b.*lsx_vshuf_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vldx:.*vldx.*lsx_vldx" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vstx:.*vstx.*lsx_vstx" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vextl_qu_du:.*vextl\\.qu\\.du.*lsx_vextl_qu_du" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bnz_b:.*vsetanyeqz\\.b.*lsx_bnz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bnz_d:.*vsetanyeqz\\.d.*lsx_bnz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bnz_h:.*vsetanyeqz\\.h.*lsx_bnz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bnz_v:.*vseteqz\\.v.*lsx_bnz_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bnz_w:.*vsetanyeqz\\.w.*lsx_bnz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bz_b:.*vsetallnez\\.b.*lsx_bz_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bz_d:.*vsetallnez\\.d.*lsx_bz_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bz_h:.*vsetallnez\\.h.*lsx_bz_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bz_v:.*vsetnez\\.v.*lsx_bz_v" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_bz_w:.*vsetallnez\\.w.*lsx_bz_w" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_caf_d:.*vfcmp\\.caf\\.d.*lsx_vfcmp_caf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_caf_s:.*vfcmp\\.caf\\.s.*lsx_vfcmp_caf_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_ceq_d:.*vfcmp\\.ceq\\.d.*lsx_vfcmp_ceq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_ceq_s:.*vfcmp\\.ceq\\.s.*lsx_vfcmp_ceq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cle_d:.*vfcmp\\.cle\\.d.*lsx_vfcmp_cle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cle_s:.*vfcmp\\.cle\\.s.*lsx_vfcmp_cle_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_clt_d:.*vfcmp\\.clt\\.d.*lsx_vfcmp_clt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_clt_s:.*vfcmp\\.clt\\.s.*lsx_vfcmp_clt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cne_d:.*vfcmp\\.cne\\.d.*lsx_vfcmp_cne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cne_s:.*vfcmp\\.cne\\.s.*lsx_vfcmp_cne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cor_d:.*vfcmp\\.cor\\.d.*lsx_vfcmp_cor_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cor_s:.*vfcmp\\.cor\\.s.*lsx_vfcmp_cor_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cueq_d:.*vfcmp\\.cueq\\.d.*lsx_vfcmp_cueq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cueq_s:.*vfcmp\\.cueq\\.s.*lsx_vfcmp_cueq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cule_d:.*vfcmp\\.cule\\.d.*lsx_vfcmp_cule_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cule_s:.*vfcmp\\.cule\\.s.*lsx_vfcmp_cule_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cult_d:.*vfcmp\\.cult\\.d.*lsx_vfcmp_cult_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cult_s:.*vfcmp\\.cult\\.s.*lsx_vfcmp_cult_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cun_d:.*vfcmp\\.cun\\.d.*lsx_vfcmp_cun_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cune_d:.*vfcmp\\.cune\\.d.*lsx_vfcmp_cune_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cune_s:.*vfcmp\\.cune\\.s.*lsx_vfcmp_cune_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_cun_s:.*vfcmp\\.cun\\.s.*lsx_vfcmp_cun_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_saf_d:.*vfcmp\\.saf\\.d.*lsx_vfcmp_saf_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_saf_s:.*vfcmp\\.saf\\.s.*lsx_vfcmp_saf_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_seq_d:.*vfcmp\\.seq\\.d.*lsx_vfcmp_seq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_seq_s:.*vfcmp\\.seq\\.s.*lsx_vfcmp_seq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sle_d:.*vfcmp\\.sle\\.d.*lsx_vfcmp_sle_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sle_s:.*vfcmp\\.sle\\.s.*lsx_vfcmp_sle_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_slt_d:.*vfcmp\\.slt\\.d.*lsx_vfcmp_slt_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_slt_s:.*vfcmp\\.slt\\.s.*lsx_vfcmp_slt_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sne_d:.*vfcmp\\.sne\\.d.*lsx_vfcmp_sne_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sne_s:.*vfcmp\\.sne\\.s.*lsx_vfcmp_sne_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sor_d:.*vfcmp\\.sor\\.d.*lsx_vfcmp_sor_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sor_s:.*vfcmp\\.sor\\.s.*lsx_vfcmp_sor_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sueq_d:.*vfcmp\\.sueq\\.d.*lsx_vfcmp_sueq_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sueq_s:.*vfcmp\\.sueq\\.s.*lsx_vfcmp_sueq_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sule_d:.*vfcmp\\.sule\\.d.*lsx_vfcmp_sule_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sule_s:.*vfcmp\\.sule\\.s.*lsx_vfcmp_sule_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sult_d:.*vfcmp\\.sult\\.d.*lsx_vfcmp_sult_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sult_s:.*vfcmp\\.sult\\.s.*lsx_vfcmp_sult_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sun_d:.*vfcmp\\.sun\\.d.*lsx_vfcmp_sun_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sune_d:.*vfcmp\\.sune\\.d.*lsx_vfcmp_sune_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sune_s:.*vfcmp\\.sune\\.s.*lsx_vfcmp_sune_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vfcmp_sun_s:.*vfcmp\\.sun\\.s.*lsx_vfcmp_sun_s" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrepli_b:.*vrepli\\.b.*lsx_vrepli_b" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrepli_d:.*vrepli\\.d.*lsx_vrepli_d" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrepli_h:.*vrepli\\.h.*lsx_vrepli_h" 1 } } */
+/* { dg-final { scan-assembler-times "lsx_vrepli_w:.*vrepli\\.w.*lsx_vrepli_w" 1 } } */
+
+typedef signed char v16i8 __attribute__ ((vector_size (16), aligned (16)));
+typedef signed char v16i8_b __attribute__ ((vector_size (16), aligned (1)));
+typedef unsigned char v16u8 __attribute__ ((vector_size (16), aligned (16)));
+typedef unsigned char v16u8_b __attribute__ ((vector_size (16), aligned (1)));
+typedef short v8i16 __attribute__ ((vector_size (16), aligned (16)));
+typedef short v8i16_h __attribute__ ((vector_size (16), aligned (2)));
+typedef unsigned short v8u16 __attribute__ ((vector_size (16), aligned (16)));
+typedef unsigned short v8u16_h __attribute__ ((vector_size (16), aligned (2)));
+typedef int v4i32 __attribute__ ((vector_size (16), aligned (16)));
+typedef int v4i32_w __attribute__ ((vector_size (16), aligned (4)));
+typedef unsigned int v4u32 __attribute__ ((vector_size (16), aligned (16)));
+typedef unsigned int v4u32_w __attribute__ ((vector_size (16), aligned (4)));
+typedef long long v2i64 __attribute__ ((vector_size (16), aligned (16)));
+typedef long long v2i64_d __attribute__ ((vector_size (16), aligned (8)));
+typedef unsigned long long v2u64
+ __attribute__ ((vector_size (16), aligned (16)));
+typedef unsigned long long v2u64_d
+ __attribute__ ((vector_size (16), aligned (8)));
+typedef float v4f32 __attribute__ ((vector_size (16), aligned (16)));
+typedef float v4f32_w __attribute__ ((vector_size (16), aligned (4)));
+typedef double v2f64 __attribute__ ((vector_size (16), aligned (16)));
+typedef double v2f64_d __attribute__ ((vector_size (16), aligned (8)));
+
+typedef long long __m128i
+ __attribute__ ((__vector_size__ (16), __may_alias__));
+typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+
+v16i8
+__lsx_vsll_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsll_b (_1, _2);
+}
+v8i16
+__lsx_vsll_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsll_h (_1, _2);
+}
+v4i32
+__lsx_vsll_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsll_w (_1, _2);
+}
+v2i64
+__lsx_vsll_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsll_d (_1, _2);
+}
+v16i8
+__lsx_vslli_b (v16i8 _1)
+{
+ return __builtin_lsx_vslli_b (_1, 1);
+}
+v8i16
+__lsx_vslli_h (v8i16 _1)
+{
+ return __builtin_lsx_vslli_h (_1, 1);
+}
+v4i32
+__lsx_vslli_w (v4i32 _1)
+{
+ return __builtin_lsx_vslli_w (_1, 1);
+}
+v2i64
+__lsx_vslli_d (v2i64 _1)
+{
+ return __builtin_lsx_vslli_d (_1, 1);
+}
+v16i8
+__lsx_vsra_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsra_b (_1, _2);
+}
+v8i16
+__lsx_vsra_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsra_h (_1, _2);
+}
+v4i32
+__lsx_vsra_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsra_w (_1, _2);
+}
+v2i64
+__lsx_vsra_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsra_d (_1, _2);
+}
+v16i8
+__lsx_vsrai_b (v16i8 _1)
+{
+ return __builtin_lsx_vsrai_b (_1, 1);
+}
+v8i16
+__lsx_vsrai_h (v8i16 _1)
+{
+ return __builtin_lsx_vsrai_h (_1, 1);
+}
+v4i32
+__lsx_vsrai_w (v4i32 _1)
+{
+ return __builtin_lsx_vsrai_w (_1, 1);
+}
+v2i64
+__lsx_vsrai_d (v2i64 _1)
+{
+ return __builtin_lsx_vsrai_d (_1, 1);
+}
+v16i8
+__lsx_vsrar_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrar_b (_1, _2);
+}
+v8i16
+__lsx_vsrar_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrar_h (_1, _2);
+}
+v4i32
+__lsx_vsrar_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrar_w (_1, _2);
+}
+v2i64
+__lsx_vsrar_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrar_d (_1, _2);
+}
+v16i8
+__lsx_vsrari_b (v16i8 _1)
+{
+ return __builtin_lsx_vsrari_b (_1, 1);
+}
+v8i16
+__lsx_vsrari_h (v8i16 _1)
+{
+ return __builtin_lsx_vsrari_h (_1, 1);
+}
+v4i32
+__lsx_vsrari_w (v4i32 _1)
+{
+ return __builtin_lsx_vsrari_w (_1, 1);
+}
+v2i64
+__lsx_vsrari_d (v2i64 _1)
+{
+ return __builtin_lsx_vsrari_d (_1, 1);
+}
+v16i8
+__lsx_vsrl_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrl_b (_1, _2);
+}
+v8i16
+__lsx_vsrl_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrl_h (_1, _2);
+}
+v4i32
+__lsx_vsrl_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrl_w (_1, _2);
+}
+v2i64
+__lsx_vsrl_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrl_d (_1, _2);
+}
+v16i8
+__lsx_vsrli_b (v16i8 _1)
+{
+ return __builtin_lsx_vsrli_b (_1, 1);
+}
+v8i16
+__lsx_vsrli_h (v8i16 _1)
+{
+ return __builtin_lsx_vsrli_h (_1, 1);
+}
+v4i32
+__lsx_vsrli_w (v4i32 _1)
+{
+ return __builtin_lsx_vsrli_w (_1, 1);
+}
+v2i64
+__lsx_vsrli_d (v2i64 _1)
+{
+ return __builtin_lsx_vsrli_d (_1, 1);
+}
+v16i8
+__lsx_vsrlr_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrlr_b (_1, _2);
+}
+v8i16
+__lsx_vsrlr_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrlr_h (_1, _2);
+}
+v4i32
+__lsx_vsrlr_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrlr_w (_1, _2);
+}
+v2i64
+__lsx_vsrlr_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrlr_d (_1, _2);
+}
+v16i8
+__lsx_vsrlri_b (v16i8 _1)
+{
+ return __builtin_lsx_vsrlri_b (_1, 1);
+}
+v8i16
+__lsx_vsrlri_h (v8i16 _1)
+{
+ return __builtin_lsx_vsrlri_h (_1, 1);
+}
+v4i32
+__lsx_vsrlri_w (v4i32 _1)
+{
+ return __builtin_lsx_vsrlri_w (_1, 1);
+}
+v2i64
+__lsx_vsrlri_d (v2i64 _1)
+{
+ return __builtin_lsx_vsrlri_d (_1, 1);
+}
+v16u8
+__lsx_vbitclr_b (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vbitclr_b (_1, _2);
+}
+v8u16
+__lsx_vbitclr_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vbitclr_h (_1, _2);
+}
+v4u32
+__lsx_vbitclr_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vbitclr_w (_1, _2);
+}
+v2u64
+__lsx_vbitclr_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vbitclr_d (_1, _2);
+}
+v16u8
+__lsx_vbitclri_b (v16u8 _1)
+{
+ return __builtin_lsx_vbitclri_b (_1, 1);
+}
+v8u16
+__lsx_vbitclri_h (v8u16 _1)
+{
+ return __builtin_lsx_vbitclri_h (_1, 1);
+}
+v4u32
+__lsx_vbitclri_w (v4u32 _1)
+{
+ return __builtin_lsx_vbitclri_w (_1, 1);
+}
+v2u64
+__lsx_vbitclri_d (v2u64 _1)
+{
+ return __builtin_lsx_vbitclri_d (_1, 1);
+}
+v16u8
+__lsx_vbitset_b (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vbitset_b (_1, _2);
+}
+v8u16
+__lsx_vbitset_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vbitset_h (_1, _2);
+}
+v4u32
+__lsx_vbitset_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vbitset_w (_1, _2);
+}
+v2u64
+__lsx_vbitset_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vbitset_d (_1, _2);
+}
+v16u8
+__lsx_vbitseti_b (v16u8 _1)
+{
+ return __builtin_lsx_vbitseti_b (_1, 1);
+}
+v8u16
+__lsx_vbitseti_h (v8u16 _1)
+{
+ return __builtin_lsx_vbitseti_h (_1, 1);
+}
+v4u32
+__lsx_vbitseti_w (v4u32 _1)
+{
+ return __builtin_lsx_vbitseti_w (_1, 1);
+}
+v2u64
+__lsx_vbitseti_d (v2u64 _1)
+{
+ return __builtin_lsx_vbitseti_d (_1, 1);
+}
+v16u8
+__lsx_vbitrev_b (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vbitrev_b (_1, _2);
+}
+v8u16
+__lsx_vbitrev_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vbitrev_h (_1, _2);
+}
+v4u32
+__lsx_vbitrev_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vbitrev_w (_1, _2);
+}
+v2u64
+__lsx_vbitrev_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vbitrev_d (_1, _2);
+}
+v16u8
+__lsx_vbitrevi_b (v16u8 _1)
+{
+ return __builtin_lsx_vbitrevi_b (_1, 1);
+}
+v8u16
+__lsx_vbitrevi_h (v8u16 _1)
+{
+ return __builtin_lsx_vbitrevi_h (_1, 1);
+}
+v4u32
+__lsx_vbitrevi_w (v4u32 _1)
+{
+ return __builtin_lsx_vbitrevi_w (_1, 1);
+}
+v2u64
+__lsx_vbitrevi_d (v2u64 _1)
+{
+ return __builtin_lsx_vbitrevi_d (_1, 1);
+}
+v16i8
+__lsx_vadd_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vadd_b (_1, _2);
+}
+v8i16
+__lsx_vadd_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vadd_h (_1, _2);
+}
+v4i32
+__lsx_vadd_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vadd_w (_1, _2);
+}
+v2i64
+__lsx_vadd_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vadd_d (_1, _2);
+}
+v16i8
+__lsx_vaddi_bu (v16i8 _1)
+{
+ return __builtin_lsx_vaddi_bu (_1, 1);
+}
+v8i16
+__lsx_vaddi_hu (v8i16 _1)
+{
+ return __builtin_lsx_vaddi_hu (_1, 1);
+}
+v4i32
+__lsx_vaddi_wu (v4i32 _1)
+{
+ return __builtin_lsx_vaddi_wu (_1, 1);
+}
+v2i64
+__lsx_vaddi_du (v2i64 _1)
+{
+ return __builtin_lsx_vaddi_du (_1, 1);
+}
+v16i8
+__lsx_vsub_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsub_b (_1, _2);
+}
+v8i16
+__lsx_vsub_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsub_h (_1, _2);
+}
+v4i32
+__lsx_vsub_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsub_w (_1, _2);
+}
+v2i64
+__lsx_vsub_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsub_d (_1, _2);
+}
+v16i8
+__lsx_vsubi_bu (v16i8 _1)
+{
+ return __builtin_lsx_vsubi_bu (_1, 1);
+}
+v8i16
+__lsx_vsubi_hu (v8i16 _1)
+{
+ return __builtin_lsx_vsubi_hu (_1, 1);
+}
+v4i32
+__lsx_vsubi_wu (v4i32 _1)
+{
+ return __builtin_lsx_vsubi_wu (_1, 1);
+}
+v2i64
+__lsx_vsubi_du (v2i64 _1)
+{
+ return __builtin_lsx_vsubi_du (_1, 1);
+}
+v16i8
+__lsx_vmax_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmax_b (_1, _2);
+}
+v8i16
+__lsx_vmax_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmax_h (_1, _2);
+}
+v4i32
+__lsx_vmax_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmax_w (_1, _2);
+}
+v2i64
+__lsx_vmax_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmax_d (_1, _2);
+}
+v16i8
+__lsx_vmaxi_b (v16i8 _1)
+{
+ return __builtin_lsx_vmaxi_b (_1, 1);
+}
+v8i16
+__lsx_vmaxi_h (v8i16 _1)
+{
+ return __builtin_lsx_vmaxi_h (_1, 1);
+}
+v4i32
+__lsx_vmaxi_w (v4i32 _1)
+{
+ return __builtin_lsx_vmaxi_w (_1, 1);
+}
+v2i64
+__lsx_vmaxi_d (v2i64 _1)
+{
+ return __builtin_lsx_vmaxi_d (_1, 1);
+}
+v16u8
+__lsx_vmax_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmax_bu (_1, _2);
+}
+v8u16
+__lsx_vmax_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmax_hu (_1, _2);
+}
+v4u32
+__lsx_vmax_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmax_wu (_1, _2);
+}
+v2u64
+__lsx_vmax_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmax_du (_1, _2);
+}
+v16u8
+__lsx_vmaxi_bu (v16u8 _1)
+{
+ return __builtin_lsx_vmaxi_bu (_1, 1);
+}
+v8u16
+__lsx_vmaxi_hu (v8u16 _1)
+{
+ return __builtin_lsx_vmaxi_hu (_1, 1);
+}
+v4u32
+__lsx_vmaxi_wu (v4u32 _1)
+{
+ return __builtin_lsx_vmaxi_wu (_1, 1);
+}
+v2u64
+__lsx_vmaxi_du (v2u64 _1)
+{
+ return __builtin_lsx_vmaxi_du (_1, 1);
+}
+v16i8
+__lsx_vmin_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmin_b (_1, _2);
+}
+v8i16
+__lsx_vmin_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmin_h (_1, _2);
+}
+v4i32
+__lsx_vmin_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmin_w (_1, _2);
+}
+v2i64
+__lsx_vmin_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmin_d (_1, _2);
+}
+v16i8
+__lsx_vmini_b (v16i8 _1)
+{
+ return __builtin_lsx_vmini_b (_1, 1);
+}
+v8i16
+__lsx_vmini_h (v8i16 _1)
+{
+ return __builtin_lsx_vmini_h (_1, 1);
+}
+v4i32
+__lsx_vmini_w (v4i32 _1)
+{
+ return __builtin_lsx_vmini_w (_1, 1);
+}
+v2i64
+__lsx_vmini_d (v2i64 _1)
+{
+ return __builtin_lsx_vmini_d (_1, 1);
+}
+v16u8
+__lsx_vmin_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmin_bu (_1, _2);
+}
+v8u16
+__lsx_vmin_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmin_hu (_1, _2);
+}
+v4u32
+__lsx_vmin_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmin_wu (_1, _2);
+}
+v2u64
+__lsx_vmin_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmin_du (_1, _2);
+}
+v16u8
+__lsx_vmini_bu (v16u8 _1)
+{
+ return __builtin_lsx_vmini_bu (_1, 1);
+}
+v8u16
+__lsx_vmini_hu (v8u16 _1)
+{
+ return __builtin_lsx_vmini_hu (_1, 1);
+}
+v4u32
+__lsx_vmini_wu (v4u32 _1)
+{
+ return __builtin_lsx_vmini_wu (_1, 1);
+}
+v2u64
+__lsx_vmini_du (v2u64 _1)
+{
+ return __builtin_lsx_vmini_du (_1, 1);
+}
+v16i8
+__lsx_vseq_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vseq_b (_1, _2);
+}
+v8i16
+__lsx_vseq_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vseq_h (_1, _2);
+}
+v4i32
+__lsx_vseq_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vseq_w (_1, _2);
+}
+v2i64
+__lsx_vseq_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vseq_d (_1, _2);
+}
+v16i8
+__lsx_vseqi_b (v16i8 _1)
+{
+ return __builtin_lsx_vseqi_b (_1, 1);
+}
+v8i16
+__lsx_vseqi_h (v8i16 _1)
+{
+ return __builtin_lsx_vseqi_h (_1, 1);
+}
+v4i32
+__lsx_vseqi_w (v4i32 _1)
+{
+ return __builtin_lsx_vseqi_w (_1, 1);
+}
+v2i64
+__lsx_vseqi_d (v2i64 _1)
+{
+ return __builtin_lsx_vseqi_d (_1, 1);
+}
+v16i8
+__lsx_vslti_b (v16i8 _1)
+{
+ return __builtin_lsx_vslti_b (_1, 1);
+}
+v16i8
+__lsx_vslt_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vslt_b (_1, _2);
+}
+v8i16
+__lsx_vslt_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vslt_h (_1, _2);
+}
+v4i32
+__lsx_vslt_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vslt_w (_1, _2);
+}
+v2i64
+__lsx_vslt_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vslt_d (_1, _2);
+}
+v8i16
+__lsx_vslti_h (v8i16 _1)
+{
+ return __builtin_lsx_vslti_h (_1, 1);
+}
+v4i32
+__lsx_vslti_w (v4i32 _1)
+{
+ return __builtin_lsx_vslti_w (_1, 1);
+}
+v2i64
+__lsx_vslti_d (v2i64 _1)
+{
+ return __builtin_lsx_vslti_d (_1, 1);
+}
+v16i8
+__lsx_vslt_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vslt_bu (_1, _2);
+}
+v8i16
+__lsx_vslt_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vslt_hu (_1, _2);
+}
+v4i32
+__lsx_vslt_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vslt_wu (_1, _2);
+}
+v2i64
+__lsx_vslt_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vslt_du (_1, _2);
+}
+v16i8
+__lsx_vslti_bu (v16u8 _1)
+{
+ return __builtin_lsx_vslti_bu (_1, 1);
+}
+v8i16
+__lsx_vslti_hu (v8u16 _1)
+{
+ return __builtin_lsx_vslti_hu (_1, 1);
+}
+v4i32
+__lsx_vslti_wu (v4u32 _1)
+{
+ return __builtin_lsx_vslti_wu (_1, 1);
+}
+v2i64
+__lsx_vslti_du (v2u64 _1)
+{
+ return __builtin_lsx_vslti_du (_1, 1);
+}
+v16i8
+__lsx_vsle_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsle_b (_1, _2);
+}
+v8i16
+__lsx_vsle_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsle_h (_1, _2);
+}
+v4i32
+__lsx_vsle_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsle_w (_1, _2);
+}
+v2i64
+__lsx_vsle_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsle_d (_1, _2);
+}
+v16i8
+__lsx_vslei_b (v16i8 _1)
+{
+ return __builtin_lsx_vslei_b (_1, 1);
+}
+v8i16
+__lsx_vslei_h (v8i16 _1)
+{
+ return __builtin_lsx_vslei_h (_1, 1);
+}
+v4i32
+__lsx_vslei_w (v4i32 _1)
+{
+ return __builtin_lsx_vslei_w (_1, 1);
+}
+v2i64
+__lsx_vslei_d (v2i64 _1)
+{
+ return __builtin_lsx_vslei_d (_1, 1);
+}
+v16i8
+__lsx_vsle_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vsle_bu (_1, _2);
+}
+v8i16
+__lsx_vsle_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vsle_hu (_1, _2);
+}
+v4i32
+__lsx_vsle_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vsle_wu (_1, _2);
+}
+v2i64
+__lsx_vsle_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vsle_du (_1, _2);
+}
+v16i8
+__lsx_vslei_bu (v16u8 _1)
+{
+ return __builtin_lsx_vslei_bu (_1, 1);
+}
+v8i16
+__lsx_vslei_hu (v8u16 _1)
+{
+ return __builtin_lsx_vslei_hu (_1, 1);
+}
+v4i32
+__lsx_vslei_wu (v4u32 _1)
+{
+ return __builtin_lsx_vslei_wu (_1, 1);
+}
+v2i64
+__lsx_vslei_du (v2u64 _1)
+{
+ return __builtin_lsx_vslei_du (_1, 1);
+}
+v16i8
+__lsx_vsat_b (v16i8 _1)
+{
+ return __builtin_lsx_vsat_b (_1, 1);
+}
+v8i16
+__lsx_vsat_h (v8i16 _1)
+{
+ return __builtin_lsx_vsat_h (_1, 1);
+}
+v4i32
+__lsx_vsat_w (v4i32 _1)
+{
+ return __builtin_lsx_vsat_w (_1, 1);
+}
+v2i64
+__lsx_vsat_d (v2i64 _1)
+{
+ return __builtin_lsx_vsat_d (_1, 1);
+}
+v16u8
+__lsx_vsat_bu (v16u8 _1)
+{
+ return __builtin_lsx_vsat_bu (_1, 1);
+}
+v8u16
+__lsx_vsat_hu (v8u16 _1)
+{
+ return __builtin_lsx_vsat_hu (_1, 1);
+}
+v4u32
+__lsx_vsat_wu (v4u32 _1)
+{
+ return __builtin_lsx_vsat_wu (_1, 1);
+}
+v2u64
+__lsx_vsat_du (v2u64 _1)
+{
+ return __builtin_lsx_vsat_du (_1, 1);
+}
+v16i8
+__lsx_vadda_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vadda_b (_1, _2);
+}
+v8i16
+__lsx_vadda_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vadda_h (_1, _2);
+}
+v4i32
+__lsx_vadda_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vadda_w (_1, _2);
+}
+v2i64
+__lsx_vadda_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vadda_d (_1, _2);
+}
+v16i8
+__lsx_vsadd_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsadd_b (_1, _2);
+}
+v8i16
+__lsx_vsadd_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsadd_h (_1, _2);
+}
+v4i32
+__lsx_vsadd_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsadd_w (_1, _2);
+}
+v2i64
+__lsx_vsadd_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsadd_d (_1, _2);
+}
+v16u8
+__lsx_vsadd_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vsadd_bu (_1, _2);
+}
+v8u16
+__lsx_vsadd_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vsadd_hu (_1, _2);
+}
+v4u32
+__lsx_vsadd_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vsadd_wu (_1, _2);
+}
+v2u64
+__lsx_vsadd_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vsadd_du (_1, _2);
+}
+v16i8
+__lsx_vavg_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vavg_b (_1, _2);
+}
+v8i16
+__lsx_vavg_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vavg_h (_1, _2);
+}
+v4i32
+__lsx_vavg_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vavg_w (_1, _2);
+}
+v2i64
+__lsx_vavg_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vavg_d (_1, _2);
+}
+v16u8
+__lsx_vavg_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vavg_bu (_1, _2);
+}
+v8u16
+__lsx_vavg_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vavg_hu (_1, _2);
+}
+v4u32
+__lsx_vavg_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vavg_wu (_1, _2);
+}
+v2u64
+__lsx_vavg_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vavg_du (_1, _2);
+}
+v16i8
+__lsx_vavgr_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vavgr_b (_1, _2);
+}
+v8i16
+__lsx_vavgr_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vavgr_h (_1, _2);
+}
+v4i32
+__lsx_vavgr_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vavgr_w (_1, _2);
+}
+v2i64
+__lsx_vavgr_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vavgr_d (_1, _2);
+}
+v16u8
+__lsx_vavgr_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vavgr_bu (_1, _2);
+}
+v8u16
+__lsx_vavgr_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vavgr_hu (_1, _2);
+}
+v4u32
+__lsx_vavgr_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vavgr_wu (_1, _2);
+}
+v2u64
+__lsx_vavgr_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vavgr_du (_1, _2);
+}
+v16i8
+__lsx_vssub_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssub_b (_1, _2);
+}
+v8i16
+__lsx_vssub_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssub_h (_1, _2);
+}
+v4i32
+__lsx_vssub_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssub_w (_1, _2);
+}
+v2i64
+__lsx_vssub_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssub_d (_1, _2);
+}
+v16u8
+__lsx_vssub_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vssub_bu (_1, _2);
+}
+v8u16
+__lsx_vssub_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vssub_hu (_1, _2);
+}
+v4u32
+__lsx_vssub_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vssub_wu (_1, _2);
+}
+v2u64
+__lsx_vssub_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vssub_du (_1, _2);
+}
+v16i8
+__lsx_vabsd_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vabsd_b (_1, _2);
+}
+v8i16
+__lsx_vabsd_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vabsd_h (_1, _2);
+}
+v4i32
+__lsx_vabsd_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vabsd_w (_1, _2);
+}
+v2i64
+__lsx_vabsd_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vabsd_d (_1, _2);
+}
+v16u8
+__lsx_vabsd_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vabsd_bu (_1, _2);
+}
+v8u16
+__lsx_vabsd_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vabsd_hu (_1, _2);
+}
+v4u32
+__lsx_vabsd_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vabsd_wu (_1, _2);
+}
+v2u64
+__lsx_vabsd_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vabsd_du (_1, _2);
+}
+v16i8
+__lsx_vmul_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmul_b (_1, _2);
+}
+v8i16
+__lsx_vmul_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmul_h (_1, _2);
+}
+v4i32
+__lsx_vmul_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmul_w (_1, _2);
+}
+v2i64
+__lsx_vmul_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmul_d (_1, _2);
+}
+v16i8
+__lsx_vmadd_b (v16i8 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmadd_b (_1, _2, _3);
+}
+v8i16
+__lsx_vmadd_h (v8i16 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmadd_h (_1, _2, _3);
+}
+v4i32
+__lsx_vmadd_w (v4i32 _1, v4i32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmadd_w (_1, _2, _3);
+}
+v2i64
+__lsx_vmadd_d (v2i64 _1, v2i64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmadd_d (_1, _2, _3);
+}
+v16i8
+__lsx_vmsub_b (v16i8 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmsub_b (_1, _2, _3);
+}
+v8i16
+__lsx_vmsub_h (v8i16 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmsub_h (_1, _2, _3);
+}
+v4i32
+__lsx_vmsub_w (v4i32 _1, v4i32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmsub_w (_1, _2, _3);
+}
+v2i64
+__lsx_vmsub_d (v2i64 _1, v2i64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmsub_d (_1, _2, _3);
+}
+v16i8
+__lsx_vdiv_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vdiv_b (_1, _2);
+}
+v8i16
+__lsx_vdiv_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vdiv_h (_1, _2);
+}
+v4i32
+__lsx_vdiv_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vdiv_w (_1, _2);
+}
+v2i64
+__lsx_vdiv_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vdiv_d (_1, _2);
+}
+v16u8
+__lsx_vdiv_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vdiv_bu (_1, _2);
+}
+v8u16
+__lsx_vdiv_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vdiv_hu (_1, _2);
+}
+v4u32
+__lsx_vdiv_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vdiv_wu (_1, _2);
+}
+v2u64
+__lsx_vdiv_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vdiv_du (_1, _2);
+}
+v8i16
+__lsx_vhaddw_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vhaddw_h_b (_1, _2);
+}
+v4i32
+__lsx_vhaddw_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vhaddw_w_h (_1, _2);
+}
+v2i64
+__lsx_vhaddw_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vhaddw_d_w (_1, _2);
+}
+v8u16
+__lsx_vhaddw_hu_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vhaddw_hu_bu (_1, _2);
+}
+v4u32
+__lsx_vhaddw_wu_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vhaddw_wu_hu (_1, _2);
+}
+v2u64
+__lsx_vhaddw_du_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vhaddw_du_wu (_1, _2);
+}
+v8i16
+__lsx_vhsubw_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vhsubw_h_b (_1, _2);
+}
+v4i32
+__lsx_vhsubw_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vhsubw_w_h (_1, _2);
+}
+v2i64
+__lsx_vhsubw_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vhsubw_d_w (_1, _2);
+}
+v8i16
+__lsx_vhsubw_hu_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vhsubw_hu_bu (_1, _2);
+}
+v4i32
+__lsx_vhsubw_wu_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vhsubw_wu_hu (_1, _2);
+}
+v2i64
+__lsx_vhsubw_du_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vhsubw_du_wu (_1, _2);
+}
+v16i8
+__lsx_vmod_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmod_b (_1, _2);
+}
+v8i16
+__lsx_vmod_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmod_h (_1, _2);
+}
+v4i32
+__lsx_vmod_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmod_w (_1, _2);
+}
+v2i64
+__lsx_vmod_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmod_d (_1, _2);
+}
+v16u8
+__lsx_vmod_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmod_bu (_1, _2);
+}
+v8u16
+__lsx_vmod_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmod_hu (_1, _2);
+}
+v4u32
+__lsx_vmod_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmod_wu (_1, _2);
+}
+v2u64
+__lsx_vmod_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmod_du (_1, _2);
+}
+v16i8
+__lsx_vreplve_b (v16i8 _1, int _2)
+{
+ return __builtin_lsx_vreplve_b (_1, _2);
+}
+v8i16
+__lsx_vreplve_h (v8i16 _1, int _2)
+{
+ return __builtin_lsx_vreplve_h (_1, _2);
+}
+v4i32
+__lsx_vreplve_w (v4i32 _1, int _2)
+{
+ return __builtin_lsx_vreplve_w (_1, _2);
+}
+v2i64
+__lsx_vreplve_d (v2i64 _1, int _2)
+{
+ return __builtin_lsx_vreplve_d (_1, _2);
+}
+v16i8
+__lsx_vreplvei_b (v16i8 _1)
+{
+ return __builtin_lsx_vreplvei_b (_1, 1);
+}
+v8i16
+__lsx_vreplvei_h (v8i16 _1)
+{
+ return __builtin_lsx_vreplvei_h (_1, 1);
+}
+v4i32
+__lsx_vreplvei_w (v4i32 _1)
+{
+ return __builtin_lsx_vreplvei_w (_1, 1);
+}
+v2i64
+__lsx_vreplvei_d (v2i64 _1)
+{
+ return __builtin_lsx_vreplvei_d (_1, 1);
+}
+v16i8
+__lsx_vpickev_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vpickev_b (_1, _2);
+}
+v8i16
+__lsx_vpickev_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vpickev_h (_1, _2);
+}
+v4i32
+__lsx_vpickev_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vpickev_w (_1, _2);
+}
+v2i64
+__lsx_vpickev_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vpickev_d (_1, _2);
+}
+v16i8
+__lsx_vpickod_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vpickod_b (_1, _2);
+}
+v8i16
+__lsx_vpickod_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vpickod_h (_1, _2);
+}
+v4i32
+__lsx_vpickod_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vpickod_w (_1, _2);
+}
+v2i64
+__lsx_vpickod_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vpickod_d (_1, _2);
+}
+v16i8
+__lsx_vilvh_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vilvh_b (_1, _2);
+}
+v8i16
+__lsx_vilvh_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vilvh_h (_1, _2);
+}
+v4i32
+__lsx_vilvh_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vilvh_w (_1, _2);
+}
+v2i64
+__lsx_vilvh_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vilvh_d (_1, _2);
+}
+v16i8
+__lsx_vilvl_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vilvl_b (_1, _2);
+}
+v8i16
+__lsx_vilvl_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vilvl_h (_1, _2);
+}
+v4i32
+__lsx_vilvl_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vilvl_w (_1, _2);
+}
+v2i64
+__lsx_vilvl_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vilvl_d (_1, _2);
+}
+v16i8
+__lsx_vpackev_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vpackev_b (_1, _2);
+}
+v8i16
+__lsx_vpackev_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vpackev_h (_1, _2);
+}
+v4i32
+__lsx_vpackev_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vpackev_w (_1, _2);
+}
+v2i64
+__lsx_vpackev_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vpackev_d (_1, _2);
+}
+v16i8
+__lsx_vpackod_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vpackod_b (_1, _2);
+}
+v8i16
+__lsx_vpackod_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vpackod_h (_1, _2);
+}
+v4i32
+__lsx_vpackod_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vpackod_w (_1, _2);
+}
+v2i64
+__lsx_vpackod_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vpackod_d (_1, _2);
+}
+v8i16
+__lsx_vshuf_h (v8i16 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vshuf_h (_1, _2, _3);
+}
+v4i32
+__lsx_vshuf_w (v4i32 _1, v4i32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vshuf_w (_1, _2, _3);
+}
+v2i64
+__lsx_vshuf_d (v2i64 _1, v2i64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vshuf_d (_1, _2, _3);
+}
+v16u8
+__lsx_vand_v (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vand_v (_1, _2);
+}
+v16u8
+__lsx_vandi_b (v16u8 _1)
+{
+ return __builtin_lsx_vandi_b (_1, 1);
+}
+v16u8
+__lsx_vor_v (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vor_v (_1, _2);
+}
+v16u8
+__lsx_vori_b (v16u8 _1)
+{
+ return __builtin_lsx_vori_b (_1, 1);
+}
+v16u8
+__lsx_vnor_v (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vnor_v (_1, _2);
+}
+v16u8
+__lsx_vnori_b (v16u8 _1)
+{
+ return __builtin_lsx_vnori_b (_1, 1);
+}
+v16u8
+__lsx_vxor_v (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vxor_v (_1, _2);
+}
+v16u8
+__lsx_vxori_b (v16u8 _1)
+{
+ return __builtin_lsx_vxori_b (_1, 1);
+}
+v16u8
+__lsx_vbitsel_v (v16u8 _1, v16u8 _2, v16u8 _3)
+{
+ return __builtin_lsx_vbitsel_v (_1, _2, _3);
+}
+v16u8
+__lsx_vbitseli_b (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vbitseli_b (_1, _2, 1);
+}
+v16i8
+__lsx_vshuf4i_b (v16i8 _1)
+{
+ return __builtin_lsx_vshuf4i_b (_1, 1);
+}
+v8i16
+__lsx_vshuf4i_h (v8i16 _1)
+{
+ return __builtin_lsx_vshuf4i_h (_1, 1);
+}
+v4i32
+__lsx_vshuf4i_w (v4i32 _1)
+{
+ return __builtin_lsx_vshuf4i_w (_1, 1);
+}
+v16i8
+__lsx_vreplgr2vr_b (int _1)
+{
+ return __builtin_lsx_vreplgr2vr_b (_1);
+}
+v8i16
+__lsx_vreplgr2vr_h (int _1)
+{
+ return __builtin_lsx_vreplgr2vr_h (_1);
+}
+v4i32
+__lsx_vreplgr2vr_w (int _1)
+{
+ return __builtin_lsx_vreplgr2vr_w (_1);
+}
+v2i64
+__lsx_vreplgr2vr_d (long _1)
+{
+ return __builtin_lsx_vreplgr2vr_d (_1);
+}
+v16i8
+__lsx_vpcnt_b (v16i8 _1)
+{
+ return __builtin_lsx_vpcnt_b (_1);
+}
+v8i16
+__lsx_vpcnt_h (v8i16 _1)
+{
+ return __builtin_lsx_vpcnt_h (_1);
+}
+v4i32
+__lsx_vpcnt_w (v4i32 _1)
+{
+ return __builtin_lsx_vpcnt_w (_1);
+}
+v2i64
+__lsx_vpcnt_d (v2i64 _1)
+{
+ return __builtin_lsx_vpcnt_d (_1);
+}
+v16i8
+__lsx_vclo_b (v16i8 _1)
+{
+ return __builtin_lsx_vclo_b (_1);
+}
+v8i16
+__lsx_vclo_h (v8i16 _1)
+{
+ return __builtin_lsx_vclo_h (_1);
+}
+v4i32
+__lsx_vclo_w (v4i32 _1)
+{
+ return __builtin_lsx_vclo_w (_1);
+}
+v2i64
+__lsx_vclo_d (v2i64 _1)
+{
+ return __builtin_lsx_vclo_d (_1);
+}
+v16i8
+__lsx_vclz_b (v16i8 _1)
+{
+ return __builtin_lsx_vclz_b (_1);
+}
+v8i16
+__lsx_vclz_h (v8i16 _1)
+{
+ return __builtin_lsx_vclz_h (_1);
+}
+v4i32
+__lsx_vclz_w (v4i32 _1)
+{
+ return __builtin_lsx_vclz_w (_1);
+}
+v2i64
+__lsx_vclz_d (v2i64 _1)
+{
+ return __builtin_lsx_vclz_d (_1);
+}
+int
+__lsx_vpickve2gr_b (v16i8 _1)
+{
+ return __builtin_lsx_vpickve2gr_b (_1, 1);
+}
+int
+__lsx_vpickve2gr_h (v8i16 _1)
+{
+ return __builtin_lsx_vpickve2gr_h (_1, 1);
+}
+int
+__lsx_vpickve2gr_w (v4i32 _1)
+{
+ return __builtin_lsx_vpickve2gr_w (_1, 1);
+}
+long
+__lsx_vpickve2gr_d (v2i64 _1)
+{
+ return __builtin_lsx_vpickve2gr_d (_1, 1);
+}
+unsigned int
+__lsx_vpickve2gr_bu (v16i8 _1)
+{
+ return __builtin_lsx_vpickve2gr_bu (_1, 1);
+}
+unsigned int
+__lsx_vpickve2gr_hu (v8i16 _1)
+{
+ return __builtin_lsx_vpickve2gr_hu (_1, 1);
+}
+unsigned int
+__lsx_vpickve2gr_wu (v4i32 _1)
+{
+ return __builtin_lsx_vpickve2gr_wu (_1, 1);
+}
+unsigned long int
+__lsx_vpickve2gr_du (v2i64 _1)
+{
+ return __builtin_lsx_vpickve2gr_du (_1, 1);
+}
+v16i8
+__lsx_vinsgr2vr_b (v16i8 _1)
+{
+ return __builtin_lsx_vinsgr2vr_b (_1, 1, 1);
+}
+v8i16
+__lsx_vinsgr2vr_h (v8i16 _1)
+{
+ return __builtin_lsx_vinsgr2vr_h (_1, 1, 1);
+}
+v4i32
+__lsx_vinsgr2vr_w (v4i32 _1)
+{
+ return __builtin_lsx_vinsgr2vr_w (_1, 1, 1);
+}
+v2i64
+__lsx_vinsgr2vr_d (v2i64 _1)
+{
+ return __builtin_lsx_vinsgr2vr_d (_1, 1, 1);
+}
+v4f32
+__lsx_vfadd_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfadd_s (_1, _2);
+}
+v2f64
+__lsx_vfadd_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfadd_d (_1, _2);
+}
+v4f32
+__lsx_vfsub_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfsub_s (_1, _2);
+}
+v2f64
+__lsx_vfsub_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfsub_d (_1, _2);
+}
+v4f32
+__lsx_vfmul_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfmul_s (_1, _2);
+}
+v2f64
+__lsx_vfmul_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfmul_d (_1, _2);
+}
+v4f32
+__lsx_vfdiv_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfdiv_s (_1, _2);
+}
+v2f64
+__lsx_vfdiv_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfdiv_d (_1, _2);
+}
+v8i16
+__lsx_vfcvt_h_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcvt_h_s (_1, _2);
+}
+v4f32
+__lsx_vfcvt_s_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcvt_s_d (_1, _2);
+}
+v4f32
+__lsx_vfmin_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfmin_s (_1, _2);
+}
+v2f64
+__lsx_vfmin_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfmin_d (_1, _2);
+}
+v4f32
+__lsx_vfmina_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfmina_s (_1, _2);
+}
+v2f64
+__lsx_vfmina_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfmina_d (_1, _2);
+}
+v4f32
+__lsx_vfmax_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfmax_s (_1, _2);
+}
+v2f64
+__lsx_vfmax_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfmax_d (_1, _2);
+}
+v4f32
+__lsx_vfmaxa_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfmaxa_s (_1, _2);
+}
+v2f64
+__lsx_vfmaxa_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfmaxa_d (_1, _2);
+}
+v4i32
+__lsx_vfclass_s (v4f32 _1)
+{
+ return __builtin_lsx_vfclass_s (_1);
+}
+v2i64
+__lsx_vfclass_d (v2f64 _1)
+{
+ return __builtin_lsx_vfclass_d (_1);
+}
+v4f32
+__lsx_vfsqrt_s (v4f32 _1)
+{
+ return __builtin_lsx_vfsqrt_s (_1);
+}
+v2f64
+__lsx_vfsqrt_d (v2f64 _1)
+{
+ return __builtin_lsx_vfsqrt_d (_1);
+}
+v4f32
+__lsx_vfrecip_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrecip_s (_1);
+}
+v2f64
+__lsx_vfrecip_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrecip_d (_1);
+}
+v4f32
+__lsx_vfrint_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrint_s (_1);
+}
+v2f64
+__lsx_vfrint_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrint_d (_1);
+}
+v4f32
+__lsx_vfrsqrt_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrsqrt_s (_1);
+}
+v2f64
+__lsx_vfrsqrt_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrsqrt_d (_1);
+}
+v4f32
+__lsx_vflogb_s (v4f32 _1)
+{
+ return __builtin_lsx_vflogb_s (_1);
+}
+v2f64
+__lsx_vflogb_d (v2f64 _1)
+{
+ return __builtin_lsx_vflogb_d (_1);
+}
+v4f32
+__lsx_vfcvth_s_h (v8i16 _1)
+{
+ return __builtin_lsx_vfcvth_s_h (_1);
+}
+v2f64
+__lsx_vfcvth_d_s (v4f32 _1)
+{
+ return __builtin_lsx_vfcvth_d_s (_1);
+}
+v4f32
+__lsx_vfcvtl_s_h (v8i16 _1)
+{
+ return __builtin_lsx_vfcvtl_s_h (_1);
+}
+v2f64
+__lsx_vfcvtl_d_s (v4f32 _1)
+{
+ return __builtin_lsx_vfcvtl_d_s (_1);
+}
+v4i32
+__lsx_vftint_w_s (v4f32 _1)
+{
+ return __builtin_lsx_vftint_w_s (_1);
+}
+v2i64
+__lsx_vftint_l_d (v2f64 _1)
+{
+ return __builtin_lsx_vftint_l_d (_1);
+}
+v4u32
+__lsx_vftint_wu_s (v4f32 _1)
+{
+ return __builtin_lsx_vftint_wu_s (_1);
+}
+v2u64
+__lsx_vftint_lu_d (v2f64 _1)
+{
+ return __builtin_lsx_vftint_lu_d (_1);
+}
+v4i32
+__lsx_vftintrz_w_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrz_w_s (_1);
+}
+v2i64
+__lsx_vftintrz_l_d (v2f64 _1)
+{
+ return __builtin_lsx_vftintrz_l_d (_1);
+}
+v4u32
+__lsx_vftintrz_wu_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrz_wu_s (_1);
+}
+v2u64
+__lsx_vftintrz_lu_d (v2f64 _1)
+{
+ return __builtin_lsx_vftintrz_lu_d (_1);
+}
+v4f32
+__lsx_vffint_s_w (v4i32 _1)
+{
+ return __builtin_lsx_vffint_s_w (_1);
+}
+v2f64
+__lsx_vffint_d_l (v2i64 _1)
+{
+ return __builtin_lsx_vffint_d_l (_1);
+}
+v4f32
+__lsx_vffint_s_wu (v4u32 _1)
+{
+ return __builtin_lsx_vffint_s_wu (_1);
+}
+v2f64
+__lsx_vffint_d_lu (v2u64 _1)
+{
+ return __builtin_lsx_vffint_d_lu (_1);
+}
+v16u8
+__lsx_vandn_v (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vandn_v (_1, _2);
+}
+v16i8
+__lsx_vneg_b (v16i8 _1)
+{
+ return __builtin_lsx_vneg_b (_1);
+}
+v8i16
+__lsx_vneg_h (v8i16 _1)
+{
+ return __builtin_lsx_vneg_h (_1);
+}
+v4i32
+__lsx_vneg_w (v4i32 _1)
+{
+ return __builtin_lsx_vneg_w (_1);
+}
+v2i64
+__lsx_vneg_d (v2i64 _1)
+{
+ return __builtin_lsx_vneg_d (_1);
+}
+v16i8
+__lsx_vmuh_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmuh_b (_1, _2);
+}
+v8i16
+__lsx_vmuh_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmuh_h (_1, _2);
+}
+v4i32
+__lsx_vmuh_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmuh_w (_1, _2);
+}
+v2i64
+__lsx_vmuh_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmuh_d (_1, _2);
+}
+v16u8
+__lsx_vmuh_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmuh_bu (_1, _2);
+}
+v8u16
+__lsx_vmuh_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmuh_hu (_1, _2);
+}
+v4u32
+__lsx_vmuh_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmuh_wu (_1, _2);
+}
+v2u64
+__lsx_vmuh_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmuh_du (_1, _2);
+}
+v8i16
+__lsx_vsllwil_h_b (v16i8 _1)
+{
+ return __builtin_lsx_vsllwil_h_b (_1, 1);
+}
+v4i32
+__lsx_vsllwil_w_h (v8i16 _1)
+{
+ return __builtin_lsx_vsllwil_w_h (_1, 1);
+}
+v2i64
+__lsx_vsllwil_d_w (v4i32 _1)
+{
+ return __builtin_lsx_vsllwil_d_w (_1, 1);
+}
+v8u16
+__lsx_vsllwil_hu_bu (v16u8 _1)
+{
+ return __builtin_lsx_vsllwil_hu_bu (_1, 1);
+}
+v4u32
+__lsx_vsllwil_wu_hu (v8u16 _1)
+{
+ return __builtin_lsx_vsllwil_wu_hu (_1, 1);
+}
+v2u64
+__lsx_vsllwil_du_wu (v4u32 _1)
+{
+ return __builtin_lsx_vsllwil_du_wu (_1, 1);
+}
+v16i8
+__lsx_vsran_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsran_b_h (_1, _2);
+}
+v8i16
+__lsx_vsran_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsran_h_w (_1, _2);
+}
+v4i32
+__lsx_vsran_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsran_w_d (_1, _2);
+}
+v16i8
+__lsx_vssran_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssran_b_h (_1, _2);
+}
+v8i16
+__lsx_vssran_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssran_h_w (_1, _2);
+}
+v4i32
+__lsx_vssran_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssran_w_d (_1, _2);
+}
+v16u8
+__lsx_vssran_bu_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vssran_bu_h (_1, _2);
+}
+v8u16
+__lsx_vssran_hu_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vssran_hu_w (_1, _2);
+}
+v4u32
+__lsx_vssran_wu_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vssran_wu_d (_1, _2);
+}
+v16i8
+__lsx_vsrarn_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrarn_b_h (_1, _2);
+}
+v8i16
+__lsx_vsrarn_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrarn_h_w (_1, _2);
+}
+v4i32
+__lsx_vsrarn_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrarn_w_d (_1, _2);
+}
+v16i8
+__lsx_vssrarn_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrarn_b_h (_1, _2);
+}
+v8i16
+__lsx_vssrarn_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrarn_h_w (_1, _2);
+}
+v4i32
+__lsx_vssrarn_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrarn_w_d (_1, _2);
+}
+v16u8
+__lsx_vssrarn_bu_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vssrarn_bu_h (_1, _2);
+}
+v8u16
+__lsx_vssrarn_hu_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vssrarn_hu_w (_1, _2);
+}
+v4u32
+__lsx_vssrarn_wu_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vssrarn_wu_d (_1, _2);
+}
+v16i8
+__lsx_vsrln_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrln_b_h (_1, _2);
+}
+v8i16
+__lsx_vsrln_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrln_h_w (_1, _2);
+}
+v4i32
+__lsx_vsrln_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrln_w_d (_1, _2);
+}
+v16u8
+__lsx_vssrln_bu_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vssrln_bu_h (_1, _2);
+}
+v8u16
+__lsx_vssrln_hu_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vssrln_hu_w (_1, _2);
+}
+v4u32
+__lsx_vssrln_wu_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vssrln_wu_d (_1, _2);
+}
+v16i8
+__lsx_vsrlrn_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrlrn_b_h (_1, _2);
+}
+v8i16
+__lsx_vsrlrn_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrlrn_h_w (_1, _2);
+}
+v4i32
+__lsx_vsrlrn_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrlrn_w_d (_1, _2);
+}
+v16u8
+__lsx_vssrlrn_bu_h (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vssrlrn_bu_h (_1, _2);
+}
+v8u16
+__lsx_vssrlrn_hu_w (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vssrlrn_hu_w (_1, _2);
+}
+v4u32
+__lsx_vssrlrn_wu_d (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vssrlrn_wu_d (_1, _2);
+}
+v16i8
+__lsx_vfrstpi_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vfrstpi_b (_1, _2, 1);
+}
+v8i16
+__lsx_vfrstpi_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vfrstpi_h (_1, _2, 1);
+}
+v16i8
+__lsx_vfrstp_b (v16i8 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vfrstp_b (_1, _2, _3);
+}
+v8i16
+__lsx_vfrstp_h (v8i16 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vfrstp_h (_1, _2, _3);
+}
+v2i64
+__lsx_vshuf4i_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vshuf4i_d (_1, _2, 1);
+}
+v16i8
+__lsx_vbsrl_v (v16i8 _1)
+{
+ return __builtin_lsx_vbsrl_v (_1, 1);
+}
+v16i8
+__lsx_vbsll_v (v16i8 _1)
+{
+ return __builtin_lsx_vbsll_v (_1, 1);
+}
+v16i8
+__lsx_vextrins_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vextrins_b (_1, _2, 1);
+}
+v8i16
+__lsx_vextrins_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vextrins_h (_1, _2, 1);
+}
+v4i32
+__lsx_vextrins_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vextrins_w (_1, _2, 1);
+}
+v2i64
+__lsx_vextrins_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vextrins_d (_1, _2, 1);
+}
+v16i8
+__lsx_vmskltz_b (v16i8 _1)
+{
+ return __builtin_lsx_vmskltz_b (_1);
+}
+v8i16
+__lsx_vmskltz_h (v8i16 _1)
+{
+ return __builtin_lsx_vmskltz_h (_1);
+}
+v4i32
+__lsx_vmskltz_w (v4i32 _1)
+{
+ return __builtin_lsx_vmskltz_w (_1);
+}
+v2i64
+__lsx_vmskltz_d (v2i64 _1)
+{
+ return __builtin_lsx_vmskltz_d (_1);
+}
+v16i8
+__lsx_vsigncov_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsigncov_b (_1, _2);
+}
+v8i16
+__lsx_vsigncov_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsigncov_h (_1, _2);
+}
+v4i32
+__lsx_vsigncov_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsigncov_w (_1, _2);
+}
+v2i64
+__lsx_vsigncov_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsigncov_d (_1, _2);
+}
+v4f32
+__lsx_vfmadd_s (v4f32 _1, v4f32 _2, v4f32 _3)
+{
+ return __builtin_lsx_vfmadd_s (_1, _2, _3);
+}
+v2f64
+__lsx_vfmadd_d (v2f64 _1, v2f64 _2, v2f64 _3)
+{
+ return __builtin_lsx_vfmadd_d (_1, _2, _3);
+}
+v4f32
+__lsx_vfmsub_s (v4f32 _1, v4f32 _2, v4f32 _3)
+{
+ return __builtin_lsx_vfmsub_s (_1, _2, _3);
+}
+v2f64
+__lsx_vfmsub_d (v2f64 _1, v2f64 _2, v2f64 _3)
+{
+ return __builtin_lsx_vfmsub_d (_1, _2, _3);
+}
+v4f32
+__lsx_vfnmadd_s (v4f32 _1, v4f32 _2, v4f32 _3)
+{
+ return __builtin_lsx_vfnmadd_s (_1, _2, _3);
+}
+v2f64
+__lsx_vfnmadd_d (v2f64 _1, v2f64 _2, v2f64 _3)
+{
+ return __builtin_lsx_vfnmadd_d (_1, _2, _3);
+}
+v4f32
+__lsx_vfnmsub_s (v4f32 _1, v4f32 _2, v4f32 _3)
+{
+ return __builtin_lsx_vfnmsub_s (_1, _2, _3);
+}
+v2f64
+__lsx_vfnmsub_d (v2f64 _1, v2f64 _2, v2f64 _3)
+{
+ return __builtin_lsx_vfnmsub_d (_1, _2, _3);
+}
+v4i32
+__lsx_vftintrne_w_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrne_w_s (_1);
+}
+v2i64
+__lsx_vftintrne_l_d (v2f64 _1)
+{
+ return __builtin_lsx_vftintrne_l_d (_1);
+}
+v4i32
+__lsx_vftintrp_w_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrp_w_s (_1);
+}
+v2i64
+__lsx_vftintrp_l_d (v2f64 _1)
+{
+ return __builtin_lsx_vftintrp_l_d (_1);
+}
+v4i32
+__lsx_vftintrm_w_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrm_w_s (_1);
+}
+v2i64
+__lsx_vftintrm_l_d (v2f64 _1)
+{
+ return __builtin_lsx_vftintrm_l_d (_1);
+}
+v4i32
+__lsx_vftint_w_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vftint_w_d (_1, _2);
+}
+v4f32
+__lsx_vffint_s_l (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vffint_s_l (_1, _2);
+}
+v4i32
+__lsx_vftintrz_w_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vftintrz_w_d (_1, _2);
+}
+v4i32
+__lsx_vftintrp_w_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vftintrp_w_d (_1, _2);
+}
+v4i32
+__lsx_vftintrm_w_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vftintrm_w_d (_1, _2);
+}
+v4i32
+__lsx_vftintrne_w_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vftintrne_w_d (_1, _2);
+}
+v2i64
+__lsx_vftintl_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintl_l_s (_1);
+}
+v2i64
+__lsx_vftinth_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftinth_l_s (_1);
+}
+v2f64
+__lsx_vffinth_d_w (v4i32 _1)
+{
+ return __builtin_lsx_vffinth_d_w (_1);
+}
+v2f64
+__lsx_vffintl_d_w (v4i32 _1)
+{
+ return __builtin_lsx_vffintl_d_w (_1);
+}
+v2i64
+__lsx_vftintrzl_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrzl_l_s (_1);
+}
+v2i64
+__lsx_vftintrzh_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrzh_l_s (_1);
+}
+v2i64
+__lsx_vftintrpl_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrpl_l_s (_1);
+}
+v2i64
+__lsx_vftintrph_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrph_l_s (_1);
+}
+v2i64
+__lsx_vftintrml_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrml_l_s (_1);
+}
+v2i64
+__lsx_vftintrmh_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrmh_l_s (_1);
+}
+v2i64
+__lsx_vftintrnel_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrnel_l_s (_1);
+}
+v2i64
+__lsx_vftintrneh_l_s (v4f32 _1)
+{
+ return __builtin_lsx_vftintrneh_l_s (_1);
+}
+v4f32
+__lsx_vfrintrne_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrintrne_s (_1);
+}
+v2f64
+__lsx_vfrintrne_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrintrne_d (_1);
+}
+v4f32
+__lsx_vfrintrz_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrintrz_s (_1);
+}
+v2f64
+__lsx_vfrintrz_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrintrz_d (_1);
+}
+v4f32
+__lsx_vfrintrp_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrintrp_s (_1);
+}
+v2f64
+__lsx_vfrintrp_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrintrp_d (_1);
+}
+v4f32
+__lsx_vfrintrm_s (v4f32 _1)
+{
+ return __builtin_lsx_vfrintrm_s (_1);
+}
+v2f64
+__lsx_vfrintrm_d (v2f64 _1)
+{
+ return __builtin_lsx_vfrintrm_d (_1);
+}
+void
+__lsx_vstelm_b (v16i8 _1, void *_2)
+{
+ return __builtin_lsx_vstelm_b (_1, _2, 1, 1);
+}
+void
+__lsx_vstelm_h (v8i16 _1, void *_2)
+{
+ return __builtin_lsx_vstelm_h (_1, _2, 2, 1);
+}
+void
+__lsx_vstelm_w (v4i32 _1, void *_2)
+{
+ return __builtin_lsx_vstelm_w (_1, _2, 4, 1);
+}
+void
+__lsx_vstelm_d (v2i64 _1, void *_2)
+{
+ return __builtin_lsx_vstelm_d (_1, _2, 8, 1);
+}
+v2i64
+__lsx_vaddwev_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vaddwev_d_w (_1, _2);
+}
+v4i32
+__lsx_vaddwev_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vaddwev_w_h (_1, _2);
+}
+v8i16
+__lsx_vaddwev_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vaddwev_h_b (_1, _2);
+}
+v2i64
+__lsx_vaddwod_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vaddwod_d_w (_1, _2);
+}
+v4i32
+__lsx_vaddwod_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vaddwod_w_h (_1, _2);
+}
+v8i16
+__lsx_vaddwod_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vaddwod_h_b (_1, _2);
+}
+v2i64
+__lsx_vaddwev_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vaddwev_d_wu (_1, _2);
+}
+v4i32
+__lsx_vaddwev_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vaddwev_w_hu (_1, _2);
+}
+v8i16
+__lsx_vaddwev_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vaddwev_h_bu (_1, _2);
+}
+v2i64
+__lsx_vaddwod_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vaddwod_d_wu (_1, _2);
+}
+v4i32
+__lsx_vaddwod_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vaddwod_w_hu (_1, _2);
+}
+v8i16
+__lsx_vaddwod_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vaddwod_h_bu (_1, _2);
+}
+v2i64
+__lsx_vaddwev_d_wu_w (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vaddwev_d_wu_w (_1, _2);
+}
+v4i32
+__lsx_vaddwev_w_hu_h (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vaddwev_w_hu_h (_1, _2);
+}
+v8i16
+__lsx_vaddwev_h_bu_b (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vaddwev_h_bu_b (_1, _2);
+}
+v2i64
+__lsx_vaddwod_d_wu_w (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vaddwod_d_wu_w (_1, _2);
+}
+v4i32
+__lsx_vaddwod_w_hu_h (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vaddwod_w_hu_h (_1, _2);
+}
+v8i16
+__lsx_vaddwod_h_bu_b (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vaddwod_h_bu_b (_1, _2);
+}
+v2i64
+__lsx_vsubwev_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsubwev_d_w (_1, _2);
+}
+v4i32
+__lsx_vsubwev_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsubwev_w_h (_1, _2);
+}
+v8i16
+__lsx_vsubwev_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsubwev_h_b (_1, _2);
+}
+v2i64
+__lsx_vsubwod_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsubwod_d_w (_1, _2);
+}
+v4i32
+__lsx_vsubwod_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsubwod_w_h (_1, _2);
+}
+v8i16
+__lsx_vsubwod_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsubwod_h_b (_1, _2);
+}
+v2i64
+__lsx_vsubwev_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vsubwev_d_wu (_1, _2);
+}
+v4i32
+__lsx_vsubwev_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vsubwev_w_hu (_1, _2);
+}
+v8i16
+__lsx_vsubwev_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vsubwev_h_bu (_1, _2);
+}
+v2i64
+__lsx_vsubwod_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vsubwod_d_wu (_1, _2);
+}
+v4i32
+__lsx_vsubwod_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vsubwod_w_hu (_1, _2);
+}
+v8i16
+__lsx_vsubwod_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vsubwod_h_bu (_1, _2);
+}
+v2i64
+__lsx_vaddwev_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vaddwev_q_d (_1, _2);
+}
+v2i64
+__lsx_vaddwod_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vaddwod_q_d (_1, _2);
+}
+v2i64
+__lsx_vaddwev_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vaddwev_q_du (_1, _2);
+}
+v2i64
+__lsx_vaddwod_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vaddwod_q_du (_1, _2);
+}
+v2i64
+__lsx_vsubwev_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsubwev_q_d (_1, _2);
+}
+v2i64
+__lsx_vsubwod_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsubwod_q_d (_1, _2);
+}
+v2i64
+__lsx_vsubwev_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vsubwev_q_du (_1, _2);
+}
+v2i64
+__lsx_vsubwod_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vsubwod_q_du (_1, _2);
+}
+v2i64
+__lsx_vaddwev_q_du_d (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vaddwev_q_du_d (_1, _2);
+}
+v2i64
+__lsx_vaddwod_q_du_d (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vaddwod_q_du_d (_1, _2);
+}
+v2i64
+__lsx_vmulwev_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmulwev_d_w (_1, _2);
+}
+v4i32
+__lsx_vmulwev_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmulwev_w_h (_1, _2);
+}
+v8i16
+__lsx_vmulwev_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmulwev_h_b (_1, _2);
+}
+v2i64
+__lsx_vmulwod_d_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmulwod_d_w (_1, _2);
+}
+v4i32
+__lsx_vmulwod_w_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmulwod_w_h (_1, _2);
+}
+v8i16
+__lsx_vmulwod_h_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmulwod_h_b (_1, _2);
+}
+v2i64
+__lsx_vmulwev_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmulwev_d_wu (_1, _2);
+}
+v4i32
+__lsx_vmulwev_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmulwev_w_hu (_1, _2);
+}
+v8i16
+__lsx_vmulwev_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmulwev_h_bu (_1, _2);
+}
+v2i64
+__lsx_vmulwod_d_wu (v4u32 _1, v4u32 _2)
+{
+ return __builtin_lsx_vmulwod_d_wu (_1, _2);
+}
+v4i32
+__lsx_vmulwod_w_hu (v8u16 _1, v8u16 _2)
+{
+ return __builtin_lsx_vmulwod_w_hu (_1, _2);
+}
+v8i16
+__lsx_vmulwod_h_bu (v16u8 _1, v16u8 _2)
+{
+ return __builtin_lsx_vmulwod_h_bu (_1, _2);
+}
+v2i64
+__lsx_vmulwev_d_wu_w (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmulwev_d_wu_w (_1, _2);
+}
+v4i32
+__lsx_vmulwev_w_hu_h (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmulwev_w_hu_h (_1, _2);
+}
+v8i16
+__lsx_vmulwev_h_bu_b (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmulwev_h_bu_b (_1, _2);
+}
+v2i64
+__lsx_vmulwod_d_wu_w (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vmulwod_d_wu_w (_1, _2);
+}
+v4i32
+__lsx_vmulwod_w_hu_h (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vmulwod_w_hu_h (_1, _2);
+}
+v8i16
+__lsx_vmulwod_h_bu_b (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vmulwod_h_bu_b (_1, _2);
+}
+v2i64
+__lsx_vmulwev_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmulwev_q_d (_1, _2);
+}
+v2i64
+__lsx_vmulwod_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmulwod_q_d (_1, _2);
+}
+v2i64
+__lsx_vmulwev_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmulwev_q_du (_1, _2);
+}
+v2i64
+__lsx_vmulwod_q_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vmulwod_q_du (_1, _2);
+}
+v2i64
+__lsx_vmulwev_q_du_d (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmulwev_q_du_d (_1, _2);
+}
+v2i64
+__lsx_vmulwod_q_du_d (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vmulwod_q_du_d (_1, _2);
+}
+v2i64
+__lsx_vhaddw_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vhaddw_q_d (_1, _2);
+}
+v2u64
+__lsx_vhaddw_qu_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vhaddw_qu_du (_1, _2);
+}
+v2i64
+__lsx_vhsubw_q_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vhsubw_q_d (_1, _2);
+}
+v2u64
+__lsx_vhsubw_qu_du (v2u64 _1, v2u64 _2)
+{
+ return __builtin_lsx_vhsubw_qu_du (_1, _2);
+}
+v2i64
+__lsx_vmaddwev_d_w (v2i64 _1, v4i32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmaddwev_d_w (_1, _2, _3);
+}
+v4i32
+__lsx_vmaddwev_w_h (v4i32 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmaddwev_w_h (_1, _2, _3);
+}
+v8i16
+__lsx_vmaddwev_h_b (v8i16 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmaddwev_h_b (_1, _2, _3);
+}
+v2u64
+__lsx_vmaddwev_d_wu (v2u64 _1, v4u32 _2, v4u32 _3)
+{
+ return __builtin_lsx_vmaddwev_d_wu (_1, _2, _3);
+}
+v4u32
+__lsx_vmaddwev_w_hu (v4u32 _1, v8u16 _2, v8u16 _3)
+{
+ return __builtin_lsx_vmaddwev_w_hu (_1, _2, _3);
+}
+v8u16
+__lsx_vmaddwev_h_bu (v8u16 _1, v16u8 _2, v16u8 _3)
+{
+ return __builtin_lsx_vmaddwev_h_bu (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwod_d_w (v2i64 _1, v4i32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmaddwod_d_w (_1, _2, _3);
+}
+v4i32
+__lsx_vmaddwod_w_h (v4i32 _1, v8i16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmaddwod_w_h (_1, _2, _3);
+}
+v8i16
+__lsx_vmaddwod_h_b (v8i16 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmaddwod_h_b (_1, _2, _3);
+}
+v2u64
+__lsx_vmaddwod_d_wu (v2u64 _1, v4u32 _2, v4u32 _3)
+{
+ return __builtin_lsx_vmaddwod_d_wu (_1, _2, _3);
+}
+v4u32
+__lsx_vmaddwod_w_hu (v4u32 _1, v8u16 _2, v8u16 _3)
+{
+ return __builtin_lsx_vmaddwod_w_hu (_1, _2, _3);
+}
+v8u16
+__lsx_vmaddwod_h_bu (v8u16 _1, v16u8 _2, v16u8 _3)
+{
+ return __builtin_lsx_vmaddwod_h_bu (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwev_d_wu_w (v2i64 _1, v4u32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmaddwev_d_wu_w (_1, _2, _3);
+}
+v4i32
+__lsx_vmaddwev_w_hu_h (v4i32 _1, v8u16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmaddwev_w_hu_h (_1, _2, _3);
+}
+v8i16
+__lsx_vmaddwev_h_bu_b (v8i16 _1, v16u8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmaddwev_h_bu_b (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwod_d_wu_w (v2i64 _1, v4u32 _2, v4i32 _3)
+{
+ return __builtin_lsx_vmaddwod_d_wu_w (_1, _2, _3);
+}
+v4i32
+__lsx_vmaddwod_w_hu_h (v4i32 _1, v8u16 _2, v8i16 _3)
+{
+ return __builtin_lsx_vmaddwod_w_hu_h (_1, _2, _3);
+}
+v8i16
+__lsx_vmaddwod_h_bu_b (v8i16 _1, v16u8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vmaddwod_h_bu_b (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwev_q_d (v2i64 _1, v2i64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmaddwev_q_d (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwod_q_d (v2i64 _1, v2i64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmaddwod_q_d (_1, _2, _3);
+}
+v2u64
+__lsx_vmaddwev_q_du (v2u64 _1, v2u64 _2, v2u64 _3)
+{
+ return __builtin_lsx_vmaddwev_q_du (_1, _2, _3);
+}
+v2u64
+__lsx_vmaddwod_q_du (v2u64 _1, v2u64 _2, v2u64 _3)
+{
+ return __builtin_lsx_vmaddwod_q_du (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwev_q_du_d (v2i64 _1, v2u64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmaddwev_q_du_d (_1, _2, _3);
+}
+v2i64
+__lsx_vmaddwod_q_du_d (v2i64 _1, v2u64 _2, v2i64 _3)
+{
+ return __builtin_lsx_vmaddwod_q_du_d (_1, _2, _3);
+}
+v16i8
+__lsx_vrotr_b (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vrotr_b (_1, _2);
+}
+v8i16
+__lsx_vrotr_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vrotr_h (_1, _2);
+}
+v4i32
+__lsx_vrotr_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vrotr_w (_1, _2);
+}
+v2i64
+__lsx_vrotr_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vrotr_d (_1, _2);
+}
+v2i64
+__lsx_vadd_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vadd_q (_1, _2);
+}
+v2i64
+__lsx_vsub_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsub_q (_1, _2);
+}
+v16i8
+__lsx_vldrepl_b (void *_1)
+{
+ return __builtin_lsx_vldrepl_b (_1, 1);
+}
+v8i16
+__lsx_vldrepl_h (void *_1)
+{
+ return __builtin_lsx_vldrepl_h (_1, 2);
+}
+v4i32
+__lsx_vldrepl_w (void *_1)
+{
+ return __builtin_lsx_vldrepl_w (_1, 4);
+}
+v2i64
+__lsx_vldrepl_d (void *_1)
+{
+ return __builtin_lsx_vldrepl_d (_1, 8);
+}
+v16i8
+__lsx_vmskgez_b (v16i8 _1)
+{
+ return __builtin_lsx_vmskgez_b (_1);
+}
+v16i8
+__lsx_vmsknz_b (v16i8 _1)
+{
+ return __builtin_lsx_vmsknz_b (_1);
+}
+v8i16
+__lsx_vexth_h_b (v16i8 _1)
+{
+ return __builtin_lsx_vexth_h_b (_1);
+}
+v4i32
+__lsx_vexth_w_h (v8i16 _1)
+{
+ return __builtin_lsx_vexth_w_h (_1);
+}
+v2i64
+__lsx_vexth_d_w (v4i32 _1)
+{
+ return __builtin_lsx_vexth_d_w (_1);
+}
+v2i64
+__lsx_vexth_q_d (v2i64 _1)
+{
+ return __builtin_lsx_vexth_q_d (_1);
+}
+v8u16
+__lsx_vexth_hu_bu (v16u8 _1)
+{
+ return __builtin_lsx_vexth_hu_bu (_1);
+}
+v4u32
+__lsx_vexth_wu_hu (v8u16 _1)
+{
+ return __builtin_lsx_vexth_wu_hu (_1);
+}
+v2u64
+__lsx_vexth_du_wu (v4u32 _1)
+{
+ return __builtin_lsx_vexth_du_wu (_1);
+}
+v2u64
+__lsx_vexth_qu_du (v2u64 _1)
+{
+ return __builtin_lsx_vexth_qu_du (_1);
+}
+v16i8
+__lsx_vrotri_b (v16i8 _1)
+{
+ return __builtin_lsx_vrotri_b (_1, 1);
+}
+v8i16
+__lsx_vrotri_h (v8i16 _1)
+{
+ return __builtin_lsx_vrotri_h (_1, 1);
+}
+v4i32
+__lsx_vrotri_w (v4i32 _1)
+{
+ return __builtin_lsx_vrotri_w (_1, 1);
+}
+v2i64
+__lsx_vrotri_d (v2i64 _1)
+{
+ return __builtin_lsx_vrotri_d (_1, 1);
+}
+v2i64
+__lsx_vextl_q_d (v2i64 _1)
+{
+ return __builtin_lsx_vextl_q_d (_1);
+}
+v16i8
+__lsx_vsrlni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrlni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vsrlni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrlni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vsrlni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrlni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vsrlni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrlni_d_q (_1, _2, 1);
+}
+v16i8
+__lsx_vsrlrni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrlrni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vsrlrni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrlrni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vsrlrni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrlrni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vsrlrni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrlrni_d_q (_1, _2, 1);
+}
+v16i8
+__lsx_vssrlni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrlni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vssrlni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrlni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vssrlni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrlni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vssrlni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrlni_d_q (_1, _2, 1);
+}
+v16u8
+__lsx_vssrlni_bu_h (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrlni_bu_h (_1, _2, 1);
+}
+v8u16
+__lsx_vssrlni_hu_w (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrlni_hu_w (_1, _2, 1);
+}
+v4u32
+__lsx_vssrlni_wu_d (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrlni_wu_d (_1, _2, 1);
+}
+v2u64
+__lsx_vssrlni_du_q (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrlni_du_q (_1, _2, 1);
+}
+v16i8
+__lsx_vssrlrni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrlrni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vssrlrni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrlrni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vssrlrni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrlrni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vssrlrni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrlrni_d_q (_1, _2, 1);
+}
+v16u8
+__lsx_vssrlrni_bu_h (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrlrni_bu_h (_1, _2, 1);
+}
+v8u16
+__lsx_vssrlrni_hu_w (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrlrni_hu_w (_1, _2, 1);
+}
+v4u32
+__lsx_vssrlrni_wu_d (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrlrni_wu_d (_1, _2, 1);
+}
+v2u64
+__lsx_vssrlrni_du_q (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrlrni_du_q (_1, _2, 1);
+}
+v16i8
+__lsx_vsrani_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrani_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vsrani_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrani_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vsrani_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrani_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vsrani_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrani_d_q (_1, _2, 1);
+}
+v16i8
+__lsx_vsrarni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vsrarni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vsrarni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vsrarni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vsrarni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vsrarni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vsrarni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vsrarni_d_q (_1, _2, 1);
+}
+v16i8
+__lsx_vssrani_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrani_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vssrani_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrani_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vssrani_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrani_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vssrani_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrani_d_q (_1, _2, 1);
+}
+v16u8
+__lsx_vssrani_bu_h (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrani_bu_h (_1, _2, 1);
+}
+v8u16
+__lsx_vssrani_hu_w (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrani_hu_w (_1, _2, 1);
+}
+v4u32
+__lsx_vssrani_wu_d (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrani_wu_d (_1, _2, 1);
+}
+v2u64
+__lsx_vssrani_du_q (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrani_du_q (_1, _2, 1);
+}
+v16i8
+__lsx_vssrarni_b_h (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrarni_b_h (_1, _2, 1);
+}
+v8i16
+__lsx_vssrarni_h_w (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrarni_h_w (_1, _2, 1);
+}
+v4i32
+__lsx_vssrarni_w_d (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrarni_w_d (_1, _2, 1);
+}
+v2i64
+__lsx_vssrarni_d_q (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrarni_d_q (_1, _2, 1);
+}
+v16u8
+__lsx_vssrarni_bu_h (v16u8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vssrarni_bu_h (_1, _2, 1);
+}
+v8u16
+__lsx_vssrarni_hu_w (v8u16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrarni_hu_w (_1, _2, 1);
+}
+v4u32
+__lsx_vssrarni_wu_d (v4u32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrarni_wu_d (_1, _2, 1);
+}
+v2u64
+__lsx_vssrarni_du_q (v2u64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrarni_du_q (_1, _2, 1);
+}
+v4i32
+__lsx_vpermi_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vpermi_w (_1, _2, 1);
+}
+v16i8
+__lsx_vld (void *_1)
+{
+ return __builtin_lsx_vld (_1, 1);
+}
+void
+__lsx_vst (v16i8 _1, void *_2)
+{
+ return __builtin_lsx_vst (_1, _2, 1);
+}
+v16i8
+__lsx_vssrlrn_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrlrn_b_h (_1, _2);
+}
+v8i16
+__lsx_vssrlrn_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrlrn_h_w (_1, _2);
+}
+v4i32
+__lsx_vssrlrn_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrlrn_w_d (_1, _2);
+}
+v16i8
+__lsx_vssrln_b_h (v8i16 _1, v8i16 _2)
+{
+ return __builtin_lsx_vssrln_b_h (_1, _2);
+}
+v8i16
+__lsx_vssrln_h_w (v4i32 _1, v4i32 _2)
+{
+ return __builtin_lsx_vssrln_h_w (_1, _2);
+}
+v4i32
+__lsx_vssrln_w_d (v2i64 _1, v2i64 _2)
+{
+ return __builtin_lsx_vssrln_w_d (_1, _2);
+}
+v16i8
+__lsx_vorn_v (v16i8 _1, v16i8 _2)
+{
+ return __builtin_lsx_vorn_v (_1, _2);
+}
+v2i64
+__lsx_vldi ()
+{
+ return __builtin_lsx_vldi (1);
+}
+v16i8
+__lsx_vshuf_b (v16i8 _1, v16i8 _2, v16i8 _3)
+{
+ return __builtin_lsx_vshuf_b (_1, _2, _3);
+}
+v16i8
+__lsx_vldx (void *_1)
+{
+ return __builtin_lsx_vldx (_1, 1);
+}
+void
+__lsx_vstx (v16i8 _1, void *_2)
+{
+ return __builtin_lsx_vstx (_1, _2, 1);
+}
+v2u64
+__lsx_vextl_qu_du (v2u64 _1)
+{
+ return __builtin_lsx_vextl_qu_du (_1);
+}
+int
+__lsx_bnz_b (v16u8 _1)
+{
+ return __builtin_lsx_bnz_b (_1);
+}
+int
+__lsx_bnz_d (v2u64 _1)
+{
+ return __builtin_lsx_bnz_d (_1);
+}
+int
+__lsx_bnz_h (v8u16 _1)
+{
+ return __builtin_lsx_bnz_h (_1);
+}
+int
+__lsx_bnz_v (v16u8 _1)
+{
+ return __builtin_lsx_bnz_v (_1);
+}
+int
+__lsx_bnz_w (v4u32 _1)
+{
+ return __builtin_lsx_bnz_w (_1);
+}
+int
+__lsx_bz_b (v16u8 _1)
+{
+ return __builtin_lsx_bz_b (_1);
+}
+int
+__lsx_bz_d (v2u64 _1)
+{
+ return __builtin_lsx_bz_d (_1);
+}
+int
+__lsx_bz_h (v8u16 _1)
+{
+ return __builtin_lsx_bz_h (_1);
+}
+int
+__lsx_bz_v (v16u8 _1)
+{
+ return __builtin_lsx_bz_v (_1);
+}
+int
+__lsx_bz_w (v4u32 _1)
+{
+ return __builtin_lsx_bz_w (_1);
+}
+v2i64
+__lsx_vfcmp_caf_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_caf_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_caf_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_caf_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_ceq_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_ceq_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_ceq_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_ceq_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cle_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cle_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cle_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cle_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_clt_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_clt_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_clt_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_clt_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cne_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cne_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cne_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cne_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cor_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cor_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cor_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cor_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cueq_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cueq_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cueq_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cueq_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cule_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cule_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cule_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cule_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cult_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cult_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cult_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cult_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cun_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cun_d (_1, _2);
+}
+v2i64
+__lsx_vfcmp_cune_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_cune_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cune_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cune_s (_1, _2);
+}
+v4i32
+__lsx_vfcmp_cun_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_cun_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_saf_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_saf_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_saf_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_saf_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_seq_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_seq_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_seq_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_seq_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sle_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sle_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sle_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sle_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_slt_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_slt_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_slt_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_slt_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sne_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sne_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sne_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sne_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sor_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sor_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sor_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sor_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sueq_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sueq_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sueq_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sueq_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sule_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sule_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sule_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sule_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sult_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sult_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sult_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sult_s (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sun_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sun_d (_1, _2);
+}
+v2i64
+__lsx_vfcmp_sune_d (v2f64 _1, v2f64 _2)
+{
+ return __builtin_lsx_vfcmp_sune_d (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sune_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sune_s (_1, _2);
+}
+v4i32
+__lsx_vfcmp_sun_s (v4f32 _1, v4f32 _2)
+{
+ return __builtin_lsx_vfcmp_sun_s (_1, _2);
+}
+v16i8
+__lsx_vrepli_b ()
+{
+ return __builtin_lsx_vrepli_b (1);
+}
+v2i64
+__lsx_vrepli_d ()
+{
+ return __builtin_lsx_vrepli_d (1);
+}
+v8i16
+__lsx_vrepli_h ()
+{
+ return __builtin_lsx_vrepli_h (1);
+}
+v4i32
+__lsx_vrepli_w ()
+{
+ return __builtin_lsx_vrepli_w (1);
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c
new file mode 100644
index 0000000..e336581
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c
@@ -0,0 +1,272 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfda9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001010000;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffd000700000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0014fff500000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f03000780000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f15000a7f010101;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000127fffffea;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f0101070101010f;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000127f010116;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67eb85af0000b000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x67157b5100005000;
+ *((unsigned long *)&__m128i_result[0]) = 0x387c7e0a133f2000;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff7fffefffa01ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffbfffefffe01ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0305030203020502;
+ *((unsigned long *)&__m128i_result[0]) = 0x0301030203020502;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4ee376188658d85f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5728dcc85ac760d2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4e1d76187a58285f;
+ *((unsigned long *)&__m128i_result[0]) = 0x572824385a39602e;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b1b106b8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a545374471b7070;
+ *((unsigned long *)&__m128i_result[0]) = 0x274f4f0648145f50;
+ __m128i_out = __lsx_vabsd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21f32eafa486fd38;
+ *((unsigned long *)&__m128i_op0[0]) = 0x407c2ca3d3430357;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x21f32eaf5b7a02c8;
+ *((unsigned long *)&__m128i_result[0]) = 0x407c2ca32cbd0357;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003bfb4000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003bfb4000;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100010001;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffdf;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000021;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000700000004e000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003000000012020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0038000000051fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x003c000000022021;
+ __m128i_out = __lsx_vabsd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9d9b9bbfaa20e9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbe081c963e6fee68;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363636463abdf17;
+ *((unsigned long *)&__m128i_result[0]) = 0x41f8e08016161198;
+ __m128i_out = __lsx_vabsd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01fe0400000006;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000005fffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe01fc0005fff4;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x010003f00000ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x017f03000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x010003f00000ff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x017f03000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000001fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000001ffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffac0a000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffac0a000000;
+ __m128i_out = __lsx_vabsd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c
new file mode 100644
index 0000000..c1af80e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xa8beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0024d8f6a494006a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x5641127843c0d41e;
+ *((unsigned long *)&__m128i_result[0]) = 0xfedb27095b6bff95;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000383ffff1fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ca354688;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000038335ca2777;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fff80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fff80000;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001fd0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001fd0;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ff08ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ff08ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff0;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefff00000001fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffe1ffc100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000400000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe1ffc100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefff00000401fff;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff000000ff000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff000000ff000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff000000ff000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff000000ff000000;
+ __m128i_out = __lsx_vabsd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_op0[0]) = 0x545cab1d7e57c415;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_result[0]) = 0x545cab1d81a83bea;
+ __m128i_out = __lsx_vabsd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffcfb799f1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0282800002828282;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5555001400005111;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffabbeab55110140;
+ *((unsigned long *)&__m128i_result[1]) = 0xaaaaffebcfb748e0;
+ *((unsigned long *)&__m128i_result[0]) = 0xfd293eab528e7ebe;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x56a09e662ab46b31;
+ *((unsigned long *)&__m128i_op0[0]) = 0xb4b8122ef4054bb3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x56a09e662ab46b31;
+ *((unsigned long *)&__m128i_result[0]) = 0xb4b8122ef4054bb3;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xc39fffff007fffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000fe00fd;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8006000080020000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8004000080020000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8006000080020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8004000080020000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100013fa0;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff0015172b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffb00151727;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffbfffffff8;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffbfffffff8;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffdc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffbffffffd8;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffbfffffff8;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000006;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001fffffff9;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x64b680a2ae3af8c8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x161c0c363c200824;
+ *((unsigned long *)&__m128i_result[1]) = 0x23b57fa16d39f7c8;
+ *((unsigned long *)&__m128i_result[0]) = 0x161c0c363c200824;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fffff0000000000;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1ffffffff8001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf0bd80bd80bd8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1ffffffff8001000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf0bd80bd80bd8000;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffef8;
+ *((unsigned long *)&__m128i_result[0]) = 0xffdfffdfffdffee0;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vabsd_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadd.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadd.c
new file mode 100644
index 0000000..7cfb989
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadd.c
@@ -0,0 +1,416 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002010000fc000b;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000017fda829;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001fffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f7f7f7f00107f04;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f0000fd7f0000fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x7e7e7e7eff0f7f04;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f0000fd7f01fffb;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x195f307a5d04acbb;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6a1a3fbb3c90260e;
+ *((unsigned long *)&__m128i_result[1]) = 0x19df307a5d04acbb;
+ *((unsigned long *)&__m128i_result[0]) = 0x5ed032b06bde1ab6;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5555001400005111;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffabbeab55110140;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5555001400005111;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffabbeab55110140;
+ *((unsigned long *)&__m128i_result[1]) = 0xaaaa00280000a222;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe567c56aa220280;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0982e2daf234ed87;
+ *((unsigned long *)&__m128i_result[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_result[0]) = 0x0982e2daf234ed87;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000073;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000002a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000049000000c0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffffff29;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000bd3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000bd30;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000d7fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007a6d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000dfefe0000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefa000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefefefefefefe;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0038000000051fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003c000000022021;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff0101ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffffa0204000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f370101ff04ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f3bffffa0226021;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1baf8eabd26bc629;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1c2640b9a8e9fb49;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002dab8746acf8e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00036dd1c5c15856;
+ *((unsigned long *)&__m128i_result[1]) = 0x1bb1686346d595b7;
+ *((unsigned long *)&__m128i_result[0]) = 0x1c29ad8a6daa539f;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfeffffffffff0002;
+ __m128i_out = __lsx_vadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000c3080000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff81ffffc3080000;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004200a000200001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x004200a000200001;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001f0000001f;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0029aeaca57d74e6;
+ *((unsigned long *)&__m128i_op0[0]) = 0xdbe332365392c686;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000056f64adb9464;
+ *((unsigned long *)&__m128i_op1[0]) = 0x29ca096f235819c2;
+ *((unsigned long *)&__m128i_result[1]) = 0x002a05a2f059094a;
+ *((unsigned long *)&__m128i_result[0]) = 0x05ad3ba576eae048;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000040d;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000013;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001000000ff;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000300000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000002fffffffb;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000fffb;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001201fe01e9;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001201fe01e9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000c0000001c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002403fc03d2;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff1000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff1000100010001;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128i_result[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_result[0]) = 0xa352bfac9269e0aa;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffa;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001001100110068;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001001100110067;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x379674c000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3789f68000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x379674c000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3789f68000000000;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000555889;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002580f01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00060fbf02040fbf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00020fbf02000fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x00060fbf02596848;
+ *((unsigned long *)&__m128i_result[0]) = 0x00020fbf04581ec0;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001388928513889;
+ *((unsigned long *)&__m128i_op0[0]) = 0x006938094a013889;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001388928513889;
+ *((unsigned long *)&__m128i_op1[0]) = 0x006938094a013889;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002711250a27112;
+ *((unsigned long *)&__m128i_result[0]) = 0x00d2701294027112;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_result[1]) = 0x202544f490f2de35;
+ *((unsigned long *)&__m128i_result[0]) = 0x202544f490f2de35;
+ __m128i_out = __lsx_vadd_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadda.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadda.c
new file mode 100644
index 0000000..4bb699e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vadda.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[0]) = 0x52527d7d52527d7d;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffc001f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010202050120;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010102020202;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000700020005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000700020005;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f8000004f800000;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003000300030004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000300030004;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5c9c9c9ce3636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x63635c9e63692363;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf0fd800080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000a00028004000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6b9fe3649c9d6363;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363bc9e8b696363;
+ __m128i_out = __lsx_vadda_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111113111111131;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111113111111131;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000006a9a5c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000092444;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000006a9a5c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000092444;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000d4ccb8;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000124888;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x76f424887fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff082f000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000f7d1000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x773324887fffffff;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5a6f5c53ebed3faa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa36aca4435b8b8e1;
+ *((unsigned long *)&__m128i_result[1]) = 0x5a6f61865d36d3aa;
+ *((unsigned long *)&__m128i_result[0]) = 0x7bea6962a0bfb621;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000008140c80;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000fffe0000ff45;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff000000b9;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffd5002affffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x343d8dc6b0ed5a08;
+ *((unsigned long *)&__m128i_result[1]) = 0x012b012c01010246;
+ *((unsigned long *)&__m128i_result[0]) = 0x353e743b50135a4f;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003c853c843c87e;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffe000ffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000200000002001;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000001fff0021;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010109;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000005452505;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000004442403e4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffe0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000005452505;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000044525043c;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000208000002080;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f0000003f0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f0000003f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x803e0000803e0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x803e0000803e0000;
+ __m128i_out = __lsx_vadda_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000008000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000008000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000008000;
+ __m128i_out = __lsx_vadda_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff9000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc000400000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007001400000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004001000000000;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefeff00fefeff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefeff00fefeff00;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadda_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000020300000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000044470000;
+ __m128i_out = __lsx_vadda_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff01ff01ac025c87;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff01ff01ac465ca1;
+ *((unsigned long *)&__m128i_result[1]) = 0x64616462b76106dc;
+ *((unsigned long *)&__m128i_result[0]) = 0x64616462b71d06c2;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_result[1]) = 0x0051005200510052;
+ *((unsigned long *)&__m128i_result[0]) = 0x0051005200510052;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3bc000003a800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4480000044800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x45c0000044800000;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363636463636363;
+ __m128i_out = __lsx_vadda_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddi.c
new file mode 100644
index 0000000..77afabe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddi.c
@@ -0,0 +1,251 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x1414141414141415;
+ *((unsigned long *)&__m128i_result[0]) = 0x1414141414141415;
+ __m128i_out = __lsx_vaddi_bu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0505050505050505;
+ *((unsigned long *)&__m128i_result[0]) = 0x0505050504040404;
+ __m128i_out = __lsx_vaddi_bu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_result[1]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f1f1f1f27332b9f;
+ __m128i_out = __lsx_vaddi_bu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_result[0]) = 0x0303030303030304;
+ __m128i_out = __lsx_vaddi_bu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x8f8f8f8f8f8f8f8f;
+ *((unsigned long *)&__m128i_result[0]) = 0x8f8f8f8f8f8f8f8f;
+ __m128i_out = __lsx_vaddi_bu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0018001800180018;
+ *((unsigned long *)&__m128i_result[0]) = 0x0018001800180018;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0019081900190019;
+ *((unsigned long *)&__m128i_result[0]) = 0x0019081900190019;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000a000a000a000a;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc1000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffcc000b000b000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000b000b010a000b;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m128i_result[0]) = 0x001f001f001f001f;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001c001c001c001c;
+ *((unsigned long *)&__m128i_result[0]) = 0x001c001c001c001c;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x680485c8b304b019;
+ *((unsigned long *)&__m128i_result[0]) = 0xc89d7f0fed582019;
+ __m128i_out = __lsx_vaddi_hu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000a0000000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000a0000000a;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000090100000a;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe009ffff2008;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000300000003;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128i_result[1]) = 0xfc01fd13fc02fe0c;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe00fd14fe01fd16;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000013;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000bd3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000c0000bd49;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000c7fff000c;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000500000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000005fffe0006;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000fffffeff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000009ffffff08;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000900000009;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x55aa55aa55aa55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaa55555655aaaaa8;
+ *((unsigned long *)&__m128i_result[1]) = 0x55aa55c355aa55c4;
+ *((unsigned long *)&__m128i_result[0]) = 0xaa55556f55aaaac1;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000e0000002e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000e0000004e;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000004;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f000400000003;
+ *((unsigned long *)&__m128i_result[0]) = 0x003f000400000003;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff8000010f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m128i_result[0]) = 0xff80000a0f800009;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_result[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_result[0]) = 0x020310edc003023d;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x59f7fd7059f7fd70;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_result[0]) = 0x59f7fd8759f7fd87;
+ __m128i_out = __lsx_vaddi_wu (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6420e0208400c4c4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x20c4e0c4e0da647a;
+ *((unsigned long *)&__m128i_result[1]) = 0x6420e0208400c4e3;
+ *((unsigned long *)&__m128i_result[0]) = 0x20c4e0c4e0da6499;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e1d001b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x21201f1e1d001b25;
+ *((unsigned long *)&__m128i_result[0]) = 0x191817161514131d;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007770ffff9411;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007770ffff941d;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000016;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000080000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vaddi_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c
new file mode 100644
index 0000000..b7b16a32
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c
@@ -0,0 +1,335 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fffffff80000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003ffd000a4000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffcffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffd000a0000;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000049ffffff4d;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff01ffffffff;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000005e695e95;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5e695e96c396b402;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000005e94;
+ *((unsigned long *)&__m128i_result[0]) = 0x00005e96ffffb402;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffb;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000100000000fc;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000100000000fc;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000158;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000005d5d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000005d5d;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5c9c9c9ce3636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x63635c9e63692363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffe3636363;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000063692363;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0202020202020203;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0202020202020203;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000002020202;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000002020202;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1817161517161514;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1615141315141312;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x76f424887fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000017161515;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000095141311;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfdfef9ff0efff900;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcfd000000fb00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fe00f8000700;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fb01;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000007000000;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000080806362;
+ *((unsigned long *)&__m128i_op1[0]) = 0x807f808000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80806362;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ff00ff;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000010002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff960015;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010002;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffff960015;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000047e59090;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffb8145f50;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00bbfff7fffffff7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff008ff820;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00bbfff7fffffff7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff008ff820;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000011ff040;
+ __m128i_out = __lsx_vaddwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000100010001fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010001fffd;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc2ffe700000007;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffc100010001;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80df00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000dfa6e0c6;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000d46cdc13;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000d46cdc13;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe813f00fe813f00;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vaddwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c
new file mode 100644
index 0000000..a407cad
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x061006100613030c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4d6814ef9c77ce46;
+ *((unsigned long *)&__m128i_result[1]) = 0x010f010f0112010b;
+ *((unsigned long *)&__m128i_result[0]) = 0x016701ee01760145;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffac0a000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ac00000000;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf589caff5605f2fa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128i_op1[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000eb00ab;
+ *((unsigned long *)&__m128i_result[0]) = 0x017400ff004500fa;
+ __m128i_out = __lsx_vaddwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000017d7000001e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x000016d10000012b;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff3fbfffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001c8520000c97d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001c8520001c87d;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffac0a000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000085af0000b000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00017ea200002000;
+ __m128i_out = __lsx_vaddwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000024;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000024;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00307028003f80b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0040007fff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000003f80b0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff800000;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001f;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff80ffffff80ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000018080807f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffff80fe;
+ __m128i_out = __lsx_vaddwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff8000000000;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000000010000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000180100100000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001801b5307f80;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000013;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff208fffffa02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff208fffffa02;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7ff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff8007;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000007f800000;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd27db010d20fbf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffd27db010d20fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffa4fb6021a41f7e;
+ __m128i_out = __lsx_vaddwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c
new file mode 100644
index 0000000..4d5c609
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c
@@ -0,0 +1,425 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0403cfcf01c1595e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x837cd5db43fc55d4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007005200440062;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080005e007f00d8;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffcafff8ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe6d4572c8a5835bc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe5017c2ac9ca9fd0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00d3012b015700bb;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001002affca0070;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000fea0000fffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363771163631745;
+ *((unsigned long *)&__m128i_op1[0]) = 0x636363ec6363636c;
+ *((unsigned long *)&__m128i_result[1]) = 0x006300fb00630143;
+ *((unsigned long *)&__m128i_result[0]) = 0x0063ffec0063006c;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c9c9c9c9c9c9c9d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080ffffffff8080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00008080ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80ffffffffff80;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff80ffffffff;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00197f26cb658837;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01009aa4a301084b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_result[1]) = 0x0037ffd40083ffe5;
+ *((unsigned long *)&__m128i_result[0]) = 0x001e0052001ffff9;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff00ffffff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000090900000998;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000900ffff98;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff8ffa2fffdffb0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff800000;
+ __m128i_out = __lsx_vaddwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1e0200001e020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcfffcfffcfffd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffcfffdfffcfffd;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffcfffffffd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffdfffffffd;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff000000ff00;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010100000101;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000004;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa2f54a1ea2f54a1e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x00004a1e00004a1e;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000868686868686;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000868600008785;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e880ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe363636363abdf16;
+ *((unsigned long *)&__m128i_op1[0]) = 0x41f8e08016161198;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000cecd00004657;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000c90000011197;
+ __m128i_out = __lsx_vaddwev_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001000f000e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fff1000ffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000f000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000ffffe;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c07e181ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3430af9effffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000fe00ff;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00060012000e002b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000049ffffffaa;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000e002b;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffaa;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000bfffffffe0f6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff7a53;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff7f80ffff7f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff7f80ffff7f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff7f80ffff7f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff7f80ffff7f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffeff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffeff00;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000003dffc2;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080006b0000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ff00ff;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000055555555;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff7f810100001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000400530050ffa6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff007fff810001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000400530050ffa6;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffff811001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000a1ff4c;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000008000001e;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9611c3985b3159f5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000035697d4e;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000013ecaadf2;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ef00ff010f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff010f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc1f03e1042208410;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001000110;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000431f851f;
+ __m128i_out = __lsx_vaddwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000030000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000030000003f;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffbfffffffbe;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x06b1213ef1efa299;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8312f5424ca4a07f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1f1f1f1f1f1f1f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f1f1f27332b9f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xa23214697fd03f7f;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x80000000ffffd860;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff80000000;
+ __m128i_out = __lsx_vaddwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c
new file mode 100644
index 0000000..0ebe8c8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c
@@ -0,0 +1,408 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ca354688;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_result[1]) = 0x00040003ff83ff84;
+ *((unsigned long *)&__m128i_result[0]) = 0x00040003ff4dffca;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001f5400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001f00000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000f80007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xb);
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff00000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffff0100ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffeffff;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x478b478b38031779;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6b769e690fa1e119;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001030103;
+ *((unsigned long *)&__m128i_result[1]) = 0x0047004700380017;
+ *((unsigned long *)&__m128i_result[0]) = 0x006bff9e0010ffe2;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80ffa2fff0ff74;
+ *((unsigned long *)&__m128i_result[0]) = 0xff76ffd8ffe6ffaa;
+ __m128i_out = __lsx_vaddwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f54e0ab00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001f5400000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffd70b00006ea9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffa352ffff9269;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffd70b00006ea9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffa352ffff9269;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe593c8c4e593c8c4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8144ffff01c820a4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9b2ee1a4034b4e34;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff80c400000148;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff80c1ffffe8de;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffefffffffe;
+ __m128i_out = __lsx_vaddwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa486c90f6537b8d7;
+ *((unsigned long *)&__m128i_op0[0]) = 0x58bcc2013ea1cc1e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffa486c90f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000058bcc201;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001802041b0014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003004;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff02000200;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffdfff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffdfff;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fbf83468;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fbf83468;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff82bb9784;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffc6bb97ac;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007ffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001000fbff9;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002ff9afef;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000004f804f81;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000004f804f80;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000fff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffe00029f9f6061;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x64e464e464e464e4;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffeffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000064e264e6;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0305030203020502;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0301030203020502;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000003050302;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000003010302;
+ __m128i_out = __lsx_vaddwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01fc020000fe0100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff0000ff0000;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00a6ffceffb60052;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff84fff4ff84fff4;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000fefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fefefe6a;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5a57bacbd7e39680;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6bae051ffed76001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf3e6586b60d7b152;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf7077b934ac0e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4e3e133738bb47d2;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000117d00007f7b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000093d0000187f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7d7f027f7c7f7c79;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7e7f7e7f027f032f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7d7f13fc7c7ffbf4;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c
new file mode 100644
index 0000000..379517f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x08fdc221bfdb1927;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4303c67e9b7fb213;
+ *((unsigned long *)&__m128i_op1[1]) = 0x08fdc221bfdb1927;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4303c67e9b7fb213;
+ *((unsigned long *)&__m128i_result[1]) = 0x00100184017e0032;
+ *((unsigned long *)&__m128i_result[0]) = 0x0086018c01360164;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff77777807777775;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe6eeef00eeeeeebf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000f00f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff007700070077;
+ *((unsigned long *)&__m128i_result[0]) = 0x00e600ef00ee01de;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vaddwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000030000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4429146a7b4c88b2;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe22b3595efa4aa0c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000442900007b4c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000e22b0000efa4;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000600000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000636500006363;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000a6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080800000808;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffe0001fefc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffe0001fefc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff8000010f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff8000010f78;
+ __m128i_out = __lsx_vaddwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffc01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffc01;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001fffffffe;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000006e17bfd8;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f000400000003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f000400000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000400004;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000003f0004;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000017f800001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000017f800001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007f800001;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007f800001;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x379674c000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3789f68000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x379674c000000000;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c
new file mode 100644
index 0000000..30dc835
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c
@@ -0,0 +1,237 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000a16316b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x16161616a16316b0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ffffa10016;
+ *((unsigned long *)&__m128i_result[0]) = 0x01150115ffa10016;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007e007e007e007e;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000200020;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000003f;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000fe00fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe00fe00fe00fe;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000011ffee;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000dfff2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vaddwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00e0000000e00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000e0000000e0;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff7100fffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff00ffffa10016;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01150115ffa10016;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100fe000070a1;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000115ffffffa1;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffe0000fffe;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff208fffffa02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000001000f00fe00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000017fff00fe7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffff00;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x5);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x04faf60009f5f092;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04fafa9200000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff9fffefff9ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000004fa000009f5;
+ *((unsigned long *)&__m128i_result[0]) = 0x000004f3fffffff9;
+ __m128i_out = __lsx_vaddwod_w_hu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000c2f90000bafa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000c2fa8000c2fa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000c2f90000bafa;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000003fffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001fff00001fff;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000807bf0a1f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000800ecedee68;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5847b72626ce61ef;
+ *((unsigned long *)&__m128i_op1[0]) = 0x110053f401e7cced;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x5847bf2de5d8816f;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000155;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vaddwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vand.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vand.c
new file mode 100644
index 0000000..1597749
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vand.c
@@ -0,0 +1,159 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x03574e3a62407e03;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000001010000;
+ *((unsigned long*)& __m128i_result[1]) = 0x03574e3a62407e03;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[1]) = 0x001fffff001fffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0x001fffff001fffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x001fffff001fffff;
+ *((unsigned long*)& __m128i_result[0]) = 0x001fffff001fffff;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000003dffc2;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00000000003dffc2;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0008000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffff0001ffff9515;
+ *((unsigned long*)& __m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long*)& __m128i_result[1]) = 0x00000000ffff53d9;
+ *((unsigned long*)& __m128i_result[0]) = 0xffff0001ffff9515;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x67eb85af0000b000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x67eb85af0000b000;
+ *((unsigned long*)& __m128i_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long*)& __m128i_result[1]) = 0x67eb85af0000b000;
+ *((unsigned long*)& __m128i_result[0]) = 0xc8847ef6ed3f2000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0313100003131000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0313100003131000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0007000000050000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0003000100010001;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00007a8000000480;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00000485000004cc;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0a0000000a000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0a0000000a000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vand_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandi.c
new file mode 100644
index 0000000..906da69
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandi.c
@@ -0,0 +1,67 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0x36);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000800;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0x39);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0x27);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0x25);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0xbd);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000a95afc60a5c5;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000b6e414157f84;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000204264602444;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000266404046604;
+ __m128i_out = __lsx_vandi_b(__m128i_op0,0x66);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandn.c
new file mode 100644
index 0000000..3ae2d76
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vandn.c
@@ -0,0 +1,129 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x000000017fff9000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000210011084;
+ *((unsigned long*)& __m128i_result[1]) = 0x000000017fff9000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000210011084;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x00000049000000c0;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00000001ffffff29;
+ *((unsigned long*)& __m128i_result[1]) = 0x00000049000000c0;
+ *((unsigned long*)& __m128i_result[0]) = 0x00000000ffffff29;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x010f00000111fffc;
+ *((unsigned long*)& __m128i_op0[0]) = 0x016700dc0176003a;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0003000000010000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0002000000010000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfffffffffffff000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0xfffffffffffff000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long*)& __m128i_op1[0]) = 0xf0bc9a5278285a4a;
+ *((unsigned long*)& __m128i_result[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long*)& __m128i_result[0]) = 0xf0bc9a5278285a4a;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfffe0004fffe0004;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vandn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-1.c
new file mode 100644
index 0000000..2177ca3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-1.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffcfffcfffc;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4050000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x2028000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000014155445;
+ *((unsigned long *)&__m128i_result[1]) = 0x33f5c2d7d9f5d800;
+ *((unsigned long *)&__m128i_result[0]) = 0xe4c23ffb002a3a22;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000f000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000ffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x003fffff00070007;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000007ffff;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400028000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000020001c020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000022;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x08080807f5f5f5f8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x04040403fafafafc;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff80;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f8000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001000010f8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x087c000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000087c;
+ __m128i_out = __lsx_vavg_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5641127843c0d41e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfedb27095b6bff95;
+ *((unsigned long *)&__m128i_op1[1]) = 0xa8beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0024d8f6a494006a;
+ *((unsigned long *)&__m128i_result[1]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff7fffffffffffff;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00007fff;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80ff0010ff06;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf6fd377cf705f680;
+ *((unsigned long *)&__m128i_result[0]) = 0xc0000000bfff8000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x1ff800000000477f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000015fec9b0;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000037;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x003fffff00000000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000008000;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd6a09e662ab46b31;
+ *((unsigned long *)&__m128i_op0[0]) = 0x34b8122ef4054bb3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xeb504f33155a3598;
+ *((unsigned long *)&__m128i_result[0]) = 0x1a5c0917fa02a5d9;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffefffff784;
+ *((unsigned long *)&__m128i_result[1]) = 0x00bbfff7fffffff7;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff008ff820;
+ __m128i_out = __lsx_vavg_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001802041b0014;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000c01020d8009;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fff8000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001008100000005;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fff7fc01;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe00fe8980000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff007e8a7ffc7e00;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff46000000ba;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffa30000005c;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000070007;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000007ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000068;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000038003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000040033;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff0000ac26;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80005613;
+ *((unsigned long *)&__m128i_result[0]) = 0x007f800000000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000040000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000040000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fc000005fc00000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fc000005fc00000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff0001fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0000ffff;
+ __m128i_out = __lsx_vavg_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-2.c
new file mode 100644
index 0000000..1b0d879
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavg-2.c
@@ -0,0 +1,308 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000100000001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x37b951002d81a921;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000047404f4f040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000082000000826;
+ *((unsigned long *)&__m128i_result[0]) = 0x1b5c4c203e685617;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_result[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_result[0]) = 0x00a975be00accf03;
+ __m128i_out = __lsx_vavg_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff732a;
+ *((unsigned long *)&__m128i_result[1]) = 0x807f7fff807f807f;
+ *((unsigned long *)&__m128i_result[0]) = 0x807f807f7fff3995;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7ff8;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x353c8cc4b1ec5b09;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080008000808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x1a9e466258f62d84;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ac;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9c00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x4e4e4e4e00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000868686868686;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1e1e1e1e1e1e1e1e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1e1e1e1e1e1e1e1e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0f0f0f0f0f0f0f0f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f0f525252525252;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffdfdc0d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a753500950fa306;
+ __m128i_out = __lsx_vavg_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff00010000fff;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000002ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000017fffffff;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101030100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080800000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080818000008000;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0017004800c400f9;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ed001a00580070;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x800b7fe38062007b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0076800d802c0037;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80ffa2fff0ff74;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff76ffd8ffe6ffaa;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xe01ae8a3fc55dd23;
+ *((unsigned long *)&__m128i_result[0]) = 0xdd9ff64ef9daeace;
+ __m128i_out = __lsx_vavg_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fffffff;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f80000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x1fc0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1fc07f8000007f80;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000043cf26c7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000e31d4cae8636;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000021e79364;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000718ea657431b;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ff8000000000000;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff80ffff7e02;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00feff8000ff80ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf931fd04f832fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0x80007fc000003f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x7d187e427c993f80;
+ __m128i_out = __lsx_vavg_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c
new file mode 100644
index 0000000..4b72625
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c
@@ -0,0 +1,299 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0040000000ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0040000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0020000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020c00000000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xb9fe3640e4eb1b18;
+ *((unsigned long *)&__m128i_op0[0]) = 0x800000005b4b1b18;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xdcfe1b20f2f60e0c;
+ *((unsigned long *)&__m128i_result[0]) = 0xc00000002e260e0c;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x111110ff11111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfbffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7bffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x060808ff08080820;
+ *((unsigned long *)&__m128i_result[0]) = 0x4608081808080810;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000fff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000ac26;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000003000000d613;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c0000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff2;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff2;
+ __m128i_out = __lsx_vavgr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000073;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000002a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000003a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000015;
+ __m128i_out = __lsx_vavgr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff8004000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffc002000000000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc002000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffc002000000000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff00000000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000007fff0018;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003fff800c;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0280000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7500000075000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7500000075000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3bc000003a800000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007d1800007c99;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0a0000001e000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a621b3ebe5e1c02;
+ *((unsigned long *)&__m128i_result[1]) = 0x04ffc0000f000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x05314c2bdf2f4c4e;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000000;
+ __m128i_out = __lsx_vavgr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fc000003fc00000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fffffffc0000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xff807f807f807f80;
+ *((unsigned long *)&__m128i_result[0]) = 0xff807f807f807f80;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000280000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000140001;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff46;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe00fe0045;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f007f007f007e;
+ *((unsigned long *)&__m128i_result[0]) = 0x007f007f007effc6;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long *)&__m128i_result[0]) = 0xe4423f7b769f8ffe;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff9dff9dff9dff9d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffceffceffcf1fcb;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3bc000003a800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x1d4000001d400000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1e5f007f5d400000;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000400000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000007f80;
+ __m128i_out = __lsx_vavgr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c
new file mode 100644
index 0000000..22908b1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c
@@ -0,0 +1,317 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff01018888;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4080808080808080;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000003f;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffffffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1817161517161514;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1615141315141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c0c8b8a8b8b0b0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x8b8a8a898a8a8909;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000208000002080;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffd60015;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80808080806b000b;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff81010102;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc1bdceee242071db;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe8c7b756d76aa578;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0dee7779210b8ed;
+ *((unsigned long *)&__m128i_result[0]) = 0xf463dbabebb5d2bc;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff80000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000400400004004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000015ff4a31;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2a7b7c9260f90ee2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1b1c6cdfd57f5736;
+ *((unsigned long *)&__m128i_result[1]) = 0x153e3e49307d0771;
+ *((unsigned long *)&__m128i_result[0]) = 0x0d8e36706ac02b9b;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xdd6156076967d8c9;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2e3ab5266375e71b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x6eb12b0634b46c67;
+ *((unsigned long *)&__m128i_result[0]) = 0x171d5a9531bb7390;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000090900000998;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007a8000000480;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000485000004cc;
+ __m128i_out = __lsx_vavgr_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffc00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc001fffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001ff800000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffe800e80000000;
+ __m128i_out = __lsx_vavgr_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff000001ffff9515;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fffa9ed;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000017fffca8b;
+ __m128i_out = __lsx_vavgr_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffdfffffff8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7ffffffc;
+ __m128i_out = __lsx_vavgr_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffeff98;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0014ffe4ff76ffc4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3131313131313131;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000017fff7fcc;
+ *((unsigned long *)&__m128i_result[0]) = 0x18a3188b9854187b;
+ __m128i_out = __lsx_vavgr_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001c88bf0;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x807fffff80800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x8003000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040ffffc0400004;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101000001000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000008000008080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080800000800080;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vavgr_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclr.c
new file mode 100644
index 0000000..411dcaa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclr.c
@@ -0,0 +1,461 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000e0000000e0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00e0000000e00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000e0000000e0;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff8004000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x19df307a5d04acbb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5ed032b06bde1ab6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x19de307a5d04acba;
+ *((unsigned long *)&__m128i_result[0]) = 0x5ed032b06bde1ab6;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0018001800180018;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0018001800180018;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd8248069ffe78077;
+ *((unsigned long *)&__m128i_op1[1]) = 0x85bd6b0e94d89998;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd83c8081ffff808f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xd82480697f678077;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000006597cc3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505853d654185f5;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01010000fefe0101;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000006595cc1d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffe0000fffe0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffe0000fffe0000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80000000fff7fc01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80000000fff6fc00;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffef800;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffefffffffe;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x23b57fa16d39f7c8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x161c0c363c200824;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000ffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000ffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000fefe00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fefe00000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1ffffffff8001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf0bd80bd80bd8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7ffffffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xdfffdfffdffffffe;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000037;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000036;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100000001007c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000000010000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefa000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefa000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67b7cf643c9d636a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x39d70e366f547977;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x66b34f643c9c626a;
+ *((unsigned long *)&__m128i_result[0]) = 0x38d60e366e547876;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020207fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_result[0]) = 0x2020202020207f7f;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ef8000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ef8000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000077f97;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffeff7f0000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x685670d37e80682a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_result[0]) = 0x685670d27e00682a;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010001000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000100;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x5d7f5d007f6a007f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffefffe;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x207fffff22bd04fb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x207fffff22bd04fb;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000002000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000002000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x207fffff22bd04fa;
+ *((unsigned long *)&__m128i_result[0]) = 0x207fffff22bd04fa;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffefffe;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000b81c8382;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000077af9450;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007efe7f7f8000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000667ae56;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000004ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000667ae56;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vbitclr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclri.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclri.c
new file mode 100644
index 0000000..5d7d66e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitclri.c
@@ -0,0 +1,279 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000201000000000b;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004200a000200000;
+ *((unsigned long *)&__m128i_result[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x004200a000200000;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000efffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000002ff5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc2cf2471e9b7d7a4;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000027f5;
+ *((unsigned long *)&__m128i_result[0]) = 0xc2cf2471e9b7d7a4;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_result[1]) = 0x7404443064403aec;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000d6eefefc0498;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x64b680a2ae3af8ca;
+ *((unsigned long *)&__m128i_op0[0]) = 0x161c0c363c200826;
+ *((unsigned long *)&__m128i_result[1]) = 0x64b680a2ae3af8c8;
+ *((unsigned long *)&__m128i_result[0]) = 0x161c0c363c200824;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfffbfffbfffbffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff807f807f807f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff807f807f807f80;
+ *((unsigned long *)&__m128i_result[1]) = 0xfb807b807b807b80;
+ *((unsigned long *)&__m128i_result[0]) = 0xfb807b807b807b80;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfbffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfbffffffffffffff;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9941d1d5f4ba9d08;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x9941d155f43a9d08;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffbfffffffbf;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03f1e3d28b1a8a1a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x03f1e3d28b1a8a1a;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffda6f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffe3d7;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefffffffeffda6f;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefffffffeffe3d7;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x26);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080638063;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080638063;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000400040004;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_d (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000200008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000200008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000200000;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200000001;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xdfdfdfdfdfdfdfdf;
+ *((unsigned long *)&__m128i_result[0]) = 0xdfdfdfdfdfdfdfdf;
+ __m128i_out = __lsx_vbitclri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitclri_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrev.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrev.c
new file mode 100644
index 0000000..ba4f4b6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrev.c
@@ -0,0 +1,407 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1b71a083b3dec3cd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x373a13323b4cdbc1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0802010808400820;
+ *((unsigned long *)&__m128i_result[0]) = 0x8004080408100802;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitrev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000800080008000;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000501000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000008;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000040100;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010400100203;
+ *((unsigned long *)&__m128i_result[0]) = 0x0103010301020109;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffbe6ed563;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd0b1ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9d519ee8d2d84f1d;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefd7f7f7f7f7f7e;
+ *((unsigned long *)&__m128i_result[0]) = 0xdffdbffeba6f5543;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7da9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x2002040404010420;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010180800101;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffe0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001ffff0001fffe;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0e7ffffc01fffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000003f803f4;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000000010000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100100000;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x040004000400040d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0501050105010501;
+ *((unsigned long *)&__m128i_result[0]) = 0x050105010501050c;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitrev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010001fffe;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000007f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffffffeffffffff;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0040000000400000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0040000000400000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0141010101410101;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x65b780a3ae3bf8cb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x161d0c363c200826;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x65b780a2ae3bf8ca;
+ *((unsigned long *)&__m128i_result[0]) = 0x161d0c373c200827;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe01fe01fe01fe01;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000003bfb4000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000021ffffffdf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000e60;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1ff85ffe2ae5d973;
+ *((unsigned long *)&__m128i_result[1]) = 0x00010020fffeffde;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100400100200e68;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000001021;
+ *((unsigned long *)&__m128i_result[1]) = 0x0108020410400208;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010102;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff0000ff86;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x010101fe0101fe87;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x343d8dc5b0ed5a08;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x353c8cc4b1ec5b09;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0037ffc8d7ff2800;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ffffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0038d800ff000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fffe00fffffe00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0137ffc9d7fe2801;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f00ff017fffff01;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001200100012001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffe7fffffff;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000010000000;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffdfffcfffdfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffdfffcfffdfffc;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001ffff0101ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0103fefd0303fefd;
+ *((unsigned long *)&__m128i_result[0]) = 0x0103fefd0103fefd;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6a5d5b056f2f4978;
+ *((unsigned long *)&__m128i_op1[0]) = 0x17483c07141b5971;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002001000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000008000020000;
+ __m128i_out = __lsx_vbitrev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffefffe;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001ce28f9c0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000004e06b0890;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefefefdbffefdfe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefeeffef7fefe;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003ffffe00800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff810001ff810002;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f804000ff810001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff1affff01001fe0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff1aff6d02834d70;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe1bfefe00011ee1;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe1bfe6c03824c60;
+ __m128i_out = __lsx_vbitrev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41945926d8000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00001e5410082727;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007f7f00107f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001001001000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x4195d926d8018000;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f8100017f810001;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8100017f810001;
+ __m128i_out = __lsx_vbitrev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x545501550001113a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xd45501550001113a;
+ __m128i_out = __lsx_vbitrev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c
new file mode 100644
index 0000000..9739182
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c
@@ -0,0 +1,336 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000400000007004;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfeffffffffffffff;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4000400040004000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4000400040004000;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007fff8000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001008100000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0800080077ff8800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0801088108000805;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m128i_result[0]) = 0x0202020202020202;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe86ce7eb5e9ce950;
+ *((unsigned long *)&__m128i_result[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m128i_result[0]) = 0xec68e3ef5a98ed54;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000400000204010;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0400040004000400;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x04000400fbfffb02;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010000000100000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000000100000;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x040004000400040d;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000004f804f81;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000004f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000004fc04f80;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040004000400040;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m128i_result[0]) = 0xefefefefefefefef;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040404040404040;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e1d1c1b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128i_result[0]) = 0x3918371635143312;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x61608654a2d4f6da;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff0800080008000;
+ *((unsigned long *)&__m128i_result[0]) = 0xe160065422d476da;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x77c0401040004000;
+ *((unsigned long *)&__m128i_result[0]) = 0x77c0401040004000;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77c03fd640003fc6;
+ *((unsigned long *)&__m128i_result[1]) = 0x75c0404a4200403a;
+ *((unsigned long *)&__m128i_result[0]) = 0x75c03fd642003fc6;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808280808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808280808;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000100fffffeff;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0404050404040404;
+ *((unsigned long *)&__m128i_result[0]) = 0x0404050404040404;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfbfbfbfbfbfbfbf;
+ *((unsigned long *)&__m128i_result[0]) = 0xbfbfbfbfbfbfbfbf;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000040000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000040000000;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000020000;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x2000200020002000;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x441ba9fcffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x181b2541ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x401fadf8fbfbfbfb;
+ *((unsigned long *)&__m128i_result[0]) = 0x1c1f2145fbfbfbfb;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffefff00001000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffefff00001000;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000002000;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000100;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd6a09e662ab46b31;
+ *((unsigned long *)&__m128i_op0[0]) = 0x34b8122ef4054bb3;
+ *((unsigned long *)&__m128i_result[1]) = 0xd6e09e262af46b71;
+ *((unsigned long *)&__m128i_result[0]) = 0x34f8126ef4454bf3;
+ __m128i_out = __lsx_vbitrevi_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000200008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000200000;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefdbffefdfe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefeeffef7feff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfcfcfcffbdfcfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfcfcedfcf5fcfd;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000555889;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002580f01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010000000455889;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000002480f01;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00060fbf00040fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020fbf00000fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x00060fbf02040fbf;
+ *((unsigned long *)&__m128i_result[0]) = 0x00020fbf02000fbf;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x400000003fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x4000000040000000;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a6a1030a49;
+ *((unsigned long *)&__m128i_result[1]) = 0x00197f26cb658837;
+ *((unsigned long *)&__m128i_result[0]) = 0x01009aa4a301084b;
+ __m128i_out = __lsx_vbitrevi_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x3);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000c6c60000c6c6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000c6c58000c6b2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000c6c40000c6c6;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000c6c78000c6b2;
+ __m128i_out = __lsx_vbitrevi_d (__m128i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff7fffffff7f;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff7fffffff7f;
+ __m128i_out = __lsx_vbitrevi_w (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitsel.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitsel.c
new file mode 100644
index 0000000..52ac993
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitsel.c
@@ -0,0 +1,109 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000005050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0505000005050505;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000d02540000007e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001400140014;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0505050505050505;
+ *((unsigned long *)&__m128i_op2[0]) = 0x03574e38e496cbc9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005000400000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0400001001150404;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080001300000013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080001300000013;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf0bc9a5278285a4a;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x62cbf84c02cbac00;
+ *((unsigned long *)&__m128i_result[0]) = 0x1014120210280240;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff59;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff59;
+ __m128i_out = __lsx_vbitsel_v (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseli.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseli.c
new file mode 100644
index 0000000..f2d6fb0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseli.c
@@ -0,0 +1,84 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6664666466646664;
+ *((unsigned long *)&__m128i_result[0]) = 0x6664666466646664;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x5d5d5d5d5d5d5d55;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0x5d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x5959595959595959;
+ *((unsigned long *)&__m128i_result[0]) = 0x5959595959595959;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0x59);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0xaa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0b4c600000000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004280808080808;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0xa4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007770ffff9411;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007770ffff941d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_result[0]) = 0x000047404f4f040d;
+ __m128i_out = __lsx_vbitseli_b (__m128i_op0, __m128i_op1, 0x4f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitset.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitset.c
new file mode 100644
index 0000000..e05af67
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitset.c
@@ -0,0 +1,371 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe001ffffe001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe001ffffe001;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000038335ca2777;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000800800000;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0982e2daf234ed87;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf51df8dbd6050189;
+ *((unsigned long *)&__m128i_result[0]) = 0x0983e2dbf235ed87;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5d5d5d5d5d5d5d55;
+ *((unsigned long *)&__m128i_result[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe00fcfffe21fd01;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff7fc01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x80000000fff7fc01;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffe00000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff01010105;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001c00ffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010201808040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010280808040;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f8000003f800001;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f8000003f800001;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000010a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000104000800;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000100;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff994cb09c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffc3639d96;
+ *((unsigned long *)&__m128i_op1[1]) = 0x20de27761210386d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x34632935195a123c;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff994db09c;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc7639d96;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000545cab1d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000081a83bea;
+ *((unsigned long *)&__m128i_op1[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_op1[0]) = 0x545cab1d81a83bea;
+ *((unsigned long *)&__m128i_result[1]) = 0x00400000547cab1d;
+ *((unsigned long *)&__m128i_result[0]) = 0x2000000081a83fea;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000038003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000040033;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100080000;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0909090909090909;
+ *((unsigned long *)&__m128i_result[0]) = 0x0909090909090909;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00a600e000a600e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01500178010000f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100000001000000;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfefbff06fffa0004;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfefeff04fffd0004;
+ *((unsigned long *)&__m128i_result[1]) = 0x4008804080040110;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040801080200110;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8101010181010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x8101010181010101;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101030101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101030101;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd78cfd70b5f65d76;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5779108fdedda7e4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xd78cfd70b5f65d77;
+ *((unsigned long *)&__m128i_result[0]) = 0x5779108fdedda7e5;
+ __m128i_out = __lsx_vbitset_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00004a1e00004a1e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x4000000040000000;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0007000000050000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080000100200001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000200020002;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff80ffff7e02;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00feff8000ff80ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0280000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff81ffff7f03;
+ *((unsigned long *)&__m128i_result[0]) = 0x04ffff8101ff81ff;
+ __m128i_out = __lsx_vbitset_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4480000044800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x45c0000044800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x4481000144810001;
+ *((unsigned long *)&__m128i_result[0]) = 0x45c04000c4808000;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3bc000003a800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x3a8100013a810001;
+ *((unsigned long *)&__m128i_result[0]) = 0x7bc04000ba808000;
+ __m128i_out = __lsx_vbitset_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000cecd00004657;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000c90000011197;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000200000800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100800000;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f8000017f800001;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000017f800001;
+ __m128i_out = __lsx_vbitset_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseti.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseti.c
new file mode 100644
index 0000000..540a724
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbitseti.c
@@ -0,0 +1,279 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020002000200020;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040000000ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040000000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x54beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8024d8f6a494afcb;
+ *((unsigned long *)&__m128i_result[1]) = 0x54feed87bc3f2be1;
+ *((unsigned long *)&__m128i_result[0]) = 0x8064d8f6a494afcb;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000c400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x001000100010c410;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3b2c8aefd44be966;
+ *((unsigned long *)&__m128i_result[1]) = 0x3e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_result[0]) = 0x3b2c8aefd44be966;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040004017fda869;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x800000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x800000ff080000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000000010000;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0004000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000000040000;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0982e2daf234ed87;
+ *((unsigned long *)&__m128i_result[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_result[0]) = 0x0982eadaf234ed87;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000006;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000006;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000030000003f;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe5e5e5e5e5e5e5e5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe5e5e5e5e4e4e46d;
+ *((unsigned long *)&__m128i_result[1]) = 0xe5e5e5e5e5e5e5e5;
+ *((unsigned long *)&__m128i_result[0]) = 0xe5e5e5e5e4e4e46d;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0800080008000800;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100000001000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100000001000000;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_result[0]) = 0x2020202020207fff;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000900000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000900013fa0;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ff0008000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x40f3fa8000800080;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000040000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m128i_result[0]) = 0xc404040404040404;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000040804000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000040804000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000040a04000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000040a04000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f81e3779b97f4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff02000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f81e3779b97f4a8;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000008000000080;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100010001000101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100010001000101;
+ __m128i_out = __lsx_vbitseti_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000010000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000010000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002711250a27112;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00d2701294027112;
+ *((unsigned long *)&__m128i_result[1]) = 0x080a791a58aa791a;
+ *((unsigned long *)&__m128i_result[0]) = 0x08da781a9c0a791a;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_result[1]) = 0x1313131313131313;
+ *((unsigned long *)&__m128i_result[0]) = 0x1313131313131313;
+ __m128i_out = __lsx_vbitseti_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000000;
+ __m128i_out = __lsx_vbitseti_d (__m128i_op0, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff0008000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff0008000000080;
+ __m128i_out = __lsx_vbitseti_w (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsll.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsll.c
new file mode 100644
index 0000000..34246c5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsll.c
@@ -0,0 +1,83 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ffffff000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff000000ff00;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a00000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_result[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001580000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsll_v (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsrl.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsrl.c
new file mode 100644
index 0000000..986b7d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vbsrl.c
@@ -0,0 +1,55 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000040100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010000;
+ __m128i_out = __lsx_vbsrl_v (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x003fffffff000000;
+ __m128i_out = __lsx_vbsrl_v (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0005fe0300010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe03000101010000;
+ __m128i_out = __lsx_vbsrl_v (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vbsrl_v (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000d3259a;
+ __m128i_out = __lsx_vbsrl_v (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclo.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclo.c
new file mode 100644
index 0000000..2c1099a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclo.c
@@ -0,0 +1,266 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe2ecd48adedc7c82;
+ *((unsigned long *)&__m128i_op0[0]) = 0x25d666472b01d18d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303020102020001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000000000201;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000fefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000007070700;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000002010202;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000007e8a60;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001edde;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x05d0ae6002e8748e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcd1de80217374041;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000001fffff59;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000aaaa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe500ffffc085;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc000ffffc005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001300000012;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001200000012;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000a00000009;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x413e276583869d79;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f7f017f9d8726d3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc090380000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000200000000d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fec20704;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclo_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000200000001c;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000200000001c;
+ __m128i_out = __lsx_vclo_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclz.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclz.c
new file mode 100644
index 0000000..12df2c6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vclz.c
@@ -0,0 +1,265 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000800100008;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000001fc1a568;
+ *((unsigned long *)&__m128i_op0[0]) = 0x02693fe0e7beb077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0006000200000000;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f7f000b000b000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000b000b010a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128i_result[0]) = 0x0804080407040804;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1ffffffff8001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf0bd80bd80bd8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010000fe7c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000100010000fe01;
+ *((unsigned long *)&__m128i_result[1]) = 0x000f000f00100000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000f000f00100000;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x41dfffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100000008080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000039;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000039;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000100ff00fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff003000ff00a0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0008000f00080008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000a00080008;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000bffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000c0c00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x687a8373f249bc44;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7861145d9241a14a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101030100010001;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vclz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080700000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000f0000000f;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000008000001e;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000200000001b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000000;
+ __m128i_out = __lsx_vclz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080805;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080805;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vclz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000000000;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vclz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c
new file mode 100644
index 0000000..cb4be04
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c
@@ -0,0 +1,299 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xc110000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc00d060000000000;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101000101010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000fe0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00ffffff00ff;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010100000000;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff9727ffff9727;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffe79ffffba5f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x010169d9010169d9;
+ *((unsigned long *)&__m128i_result[0]) = 0x01010287010146a1;
+ __m128i_out = __lsx_vdiv_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_op1[1]) = 0x80010001b57fc565;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8001000184000be0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000080001fffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff9cf0d77b;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc1000082b0fb585b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff010000ff01;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363abdf16;
+ *((unsigned long *)&__m128i_op1[0]) = 0x41f8e08016161198;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000030000;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffc00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00001ff800000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ffe800e80000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x195f307a5d04acbb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6a1a3fbb3c90260e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xe6a0cf86a2fb5345;
+ *((unsigned long *)&__m128i_result[0]) = 0x95e5c045c36fd9f2;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2e3a36363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa2e3a36463636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f80000000000007;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000700000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000e32c50e;
+ *((unsigned long *)&__m128i_result[0]) = 0xf2b2ce330e32c50e;
+ __m128i_out = __lsx_vdiv_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000001;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe93d0bd19ff0c170;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5237c1bac9eadf55;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001084314a6;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001084314a6;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000ffef0010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000010000010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101000001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4280000042800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xbd7fffffbd800000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op1[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000004ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000667ae56;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vdiv_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c
new file mode 100644
index 0000000..f2bc7df
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c
@@ -0,0 +1,254 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x31b1777777777776;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6eee282828282829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0effeffefdffa1e0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe6004c5f64284224;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000073;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000002a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000003f200001e01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000014bf000019da;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c99aed5b88fcf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7c3650c5f79a61a3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080800008;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffd700;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffdfffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffbfff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080006b0000000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000001ff1745745c;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff14eb54ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x14ea6a002a406a00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80008a7555aa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a7535006af05cf9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vdiv_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfebffefffebffeff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfebffefffebffeff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363797c63996399;
+ *((unsigned long *)&__m128i_op0[0]) = 0x171f0a1f6376441f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363797c63996399;
+ *((unsigned long *)&__m128i_op1[0]) = 0x171f0a1f6376441f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000036de0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003be14000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000007e8a60;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000001edde;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000015d926c7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000e41b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77c03fd640003fc6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffc0001fffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffc0001fffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000feff2356;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fd165486;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000246d9755;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000002427c2ee;
+ __m128i_out = __lsx_vdiv_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c
new file mode 100644
index 0000000..f639080
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-1.c
@@ -0,0 +1,342 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000f909;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1010111105050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4040000041410101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000110011;
+ *((unsigned long *)&__m128i_result[0]) = 0x0005000500000000;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000003ffe2;
+ __m128i_out = __lsx_vexth_h_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03c0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03c0038000000380;
+ *((unsigned long *)&__m128i_result[1]) = 0x000003c000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xb9fe3640e4eb1b18;
+ *((unsigned long *)&__m128i_op0[0]) = 0x800000005b4b1b18;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffb9fe00003640;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe4eb00001b18;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfec00130014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfec00130014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000370bffffdfec;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000014;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe500c085c000c005;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe5c1a185c48004c5;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe500ffffc085;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffc000ffffc005;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_w_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5c9c9c9ce3636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x63635c9e63692363;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000005c9c9c9c;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffe3636363;
+ __m128i_out = __lsx_vexth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x63b2ac27aa076aeb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000063b2ac27;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffaa076aeb;
+ __m128i_out = __lsx_vexth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x002a001a001a000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000002a001a;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000001a000b;
+ __m128i_out = __lsx_vexth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x012927ffff272800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0028280000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff000000ff;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000020000020;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000fff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffc;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000080;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3a8000003a800000;
+ __m128i_out = __lsx_vexth_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c
new file mode 100644
index 0000000..6ab217e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vexth-2.c
@@ -0,0 +1,182 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x004f0080004f0080;
+ *((unsigned long *)&__m128i_result[0]) = 0x004f0080004f0080;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff0000007f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x5);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x002cffacffacffab;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000007f00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vexth_hu_bu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000082020201;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000820200000201;
+ __m128i_out = __lsx_vexth_wu_hu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fec20704;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000012;
+ __m128i_out = __lsx_vexth_wu_hu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vexth_du_wu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_du_wu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_du_wu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_du_wu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000001;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff7fc01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001fc00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000000020000;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000b4a00008808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080800000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000b4a00008808;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000400080003fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bc2000007e10;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000400080003fff;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vexth_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c
new file mode 100644
index 0000000..99854db
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-1.c
@@ -0,0 +1,83 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000170014;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff0cff78ff96ff14;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff0cff78ff96ff14;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe500ffffc085;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc000ffffc005;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffc000ffffc005;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3131313131313131;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3131313131313131;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3131313131313131;
+ __m128i_out = __lsx_vextl_q_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-2.c
new file mode 100644
index 0000000..73bb530
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextl-2.c
@@ -0,0 +1,83 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000101fffff8b68;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000b6fffff8095;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000b6fffff8095;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000104000800;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010000fe7c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000100010000fe01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010000fe01;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc8847ef6ed3f2000;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000d82;
+ *((unsigned long *)&__m128i_op0[0]) = 0x046a09ec009c0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x046a09ec009c0000;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextl_qu_du (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextrins.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextrins.c
new file mode 100644
index 0000000..8d4158b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vextrins.c
@@ -0,0 +1,479 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff00000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x92);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xc2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0200020002000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0200020002000200;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff02000200;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_op0[0]) = 0x342caf9be55700b5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_result[0]) = 0x342caf9bffff1fff;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0xcc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xc6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000a16316b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000063636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x16161616a16316b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000a16316b0;
+ *((unsigned long *)&__m128i_result[0]) = 0x16161616a16316b0;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0xa7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc45a851c40c18;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffc45a851c40c18;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x48);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0xcc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000005d5d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x41);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fefefe6a;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c2bac2c2;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ffffffeffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffffffeffffffff;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xe6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000a0000000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000a00000009;
+ *((unsigned long *)&__m128i_result[1]) = 0x000a000a0000000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000a000a000a000a;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0xaf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff80000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x67);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004fcfcfd01f9f9f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9f4fcfcfcf800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004fcfcfd01f9f9f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9f4fcfcfcf800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x004f1fcfd01f9f9f;
+ *((unsigned long *)&__m128i_result[0]) = 0x9f4fcfcfcf800000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xda);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x75b043c4d17db125;
+ *((unsigned long *)&__m128i_op0[0]) = 0xeef8227b596117b1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x75b043c4d17db125;
+ *((unsigned long *)&__m128i_result[0]) = 0xeef8227b4f8017b1;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000de32400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x027c027c000027c0;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x77);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363797c63996399;
+ *((unsigned long *)&__m128i_op0[0]) = 0x171f0a1f6376441f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363797c63990099;
+ *((unsigned long *)&__m128i_result[0]) = 0x171f0a1f6376441f;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0x94);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0bd80bd80bdfffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0bd80bd80bd80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0bd80bd80bd80000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0xf9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x41dfbe1f41e0ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc2ffe000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x41dfbe1f41e0ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffc100010001;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0xec);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe93d0bd19ff0c170;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5237c1bac9eadf55;
+ *((unsigned long *)&__m128i_result[1]) = 0x5237c1baffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x7d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffbd994889;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000a092444;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000890000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0x58);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000fea0000fffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff8607db959f;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff0cff78ff96ff14;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000fea0000fffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xff0cff78ff96ff14;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0xc2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01ef013f01e701f8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x35bb8d32b2625c00;
+ *((unsigned long *)&__m128i_result[1]) = 0x00008d3200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0xea);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8003000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4040ffffc0400004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8003000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x64);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x74);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_result[0]) = 0xff000001ffff9515;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0x67);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xf4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xc1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x71);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x82);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xd5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0xf3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbbe5560400010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe7e5dabf00010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbbe5560400010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe7e5dabf00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xe7e5560400010001;
+ *((unsigned long *)&__m128i_result[0]) = 0xe7e5dabf00010001;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0xf3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x5d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x24);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xb6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x975ca6046e2e4889;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1748c4f9ed1a5870;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffc606ec5;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000014155445;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x76);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000024170000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vextrins_b (__m128i_op0, __m128i_op1, 0xc5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01017f3c00000148;
+ *((unsigned long *)&__m128i_op1[0]) = 0x117d7f7b093d187f;
+ *((unsigned long *)&__m128i_result[1]) = 0x117d7f7b093d187f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000034;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x70);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe519ab7e71e33848;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffab7e71e33848;
+ __m128i_out = __lsx_vextrins_h (__m128i_op0, __m128i_op1, 0xbc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff760386bdae46;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc1fc7941bc7e00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff7603;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0xc3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff2356fe165486;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000003b0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff2356fe165486;
+ __m128i_out = __lsx_vextrins_w (__m128i_op0, __m128i_op1, 0x70);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vextrins_d (__m128i_op0, __m128i_op1, 0x8a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c
new file mode 100644
index 0000000..7ffbd38
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c
@@ -0,0 +1,407 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000fea8ff44;
+ *((unsigned long *)&__m128d_op1[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128d_op1[0]) = 0x2020202020202020;
+ *((unsigned long *)&__m128d_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128d_result[0]) = 0x2020202020202020;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128d_result[0]) = 0x1000100010001000;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x000000000000000f;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000010100fe0101;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff0200ffff01ff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0001010100fe0100;
+ *((unsigned long *)&__m128d_result[0]) = 0xffff0200ffff01ff;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff0101ffffe000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fffffffa0204000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7f370101ff04ffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7f3bffffa0226021;
+ *((unsigned long *)&__m128d_result[1]) = 0x7fff0101ffffe000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7fffffffa0204000;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128d_op1[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128d_op1[0]) = 0x27b1b106b8145f50;
+ *((unsigned long *)&__m128d_result[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128d_result[0]) = 0x27b1b106b8145f50;
+ __m128d_out = __lsx_vfadd_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000100000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x1000100000001000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000100000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x1000100000001000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000007000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128d_op1[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffab7e71e33848;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmul_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128d_result[1]) = 0x800000ff000000ff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000fff80000;
+ *((unsigned long *)&__m128d_result[1]) = 0x80000000fff8fff8;
+ *((unsigned long *)&__m128d_result[0]) = 0x80000000fff80000;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0xb55ccf30f52a6a68;
+ *((unsigned long *)&__m128d_op1[0]) = 0x4e0018eceb82c53a;
+ *((unsigned long *)&__m128d_result[1]) = 0x355ccf30f52a6a68;
+ *((unsigned long *)&__m128d_result[0]) = 0xce0018eceb82c53a;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff00006c82;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00009b140000917b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffff00006c82;
+ *((unsigned long *)&__m128d_result[0]) = 0x00009b140000917b;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100000020;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000083b00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xe93d0bd19ff0c170;
+ *((unsigned long *)&__m128d_op0[0]) = 0x5237c1bac9eadf55;
+ *((unsigned long *)&__m128d_op1[1]) = 0xe6d4572c8a5835bc;
+ *((unsigned long *)&__m128d_op1[0]) = 0xe5017c2ac9ca9fd0;
+ *((unsigned long *)&__m128d_result[1]) = 0xe93d0bd19ff07013;
+ *((unsigned long *)&__m128d_result[0]) = 0x65017c2ac9ca9fd0;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xe93d0bd19ff07013;
+ *((unsigned long *)&__m128d_op0[0]) = 0x65017c2ac9ca9fd0;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00008bf700017052;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000f841000091aa;
+ *((unsigned long *)&__m128d_result[1]) = 0xe93d0bd19ff07013;
+ *((unsigned long *)&__m128d_result[0]) = 0x65017c2ac9ca9fd0;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000004000000002;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x5555410154551515;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0004455501500540;
+ *((unsigned long *)&__m128d_result[1]) = 0xd555410154551515;
+ *((unsigned long *)&__m128d_result[0]) = 0x8004455501500540;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0003000300000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0003000300a10003;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x56a09e662ab46b31;
+ *((unsigned long *)&__m128d_op1[0]) = 0xb4b8122ef4054bb3;
+ *((unsigned long *)&__m128d_result[1]) = 0xd6a09e662ab46b31;
+ *((unsigned long *)&__m128d_result[0]) = 0x34b8122ef4054bb3;
+ __m128d_out = __lsx_vfsub_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f4000007f040000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f0200007f020000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128d_result[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffff01018888;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100007f01;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffefefffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0400000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffefefffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000ff801c9e;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000810000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x40eff02383e383e4;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000cd630000cd63;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffff00000000ffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128d_op1[0]) = 0x03aa558e1d37b5a1;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffefffe011df03e;
+ *((unsigned long *)&__m128d_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128d_result[0]) = 0xfffffffefffffffe;
+ __m128d_out = __lsx_vfdiv_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c
new file mode 100644
index 0000000..3884302
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c
@@ -0,0 +1,470 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x05050505;
+ *((int *)&__m128_op0[2]) = 0x05050505;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x05050000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x03574e38;
+ *((int *)&__m128_op1[0]) = 0xe496cbc9;
+ *((int *)&__m128_result[3]) = 0x05050505;
+ *((int *)&__m128_result[2]) = 0x05050505;
+ *((int *)&__m128_result[1]) = 0x03574e38;
+ *((int *)&__m128_result[0]) = 0xe496cbc9;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000000f;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00077f88;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00077f97;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x000000ff;
+ *((int *)&__m128_op0[0]) = 0x000000ff;
+ *((int *)&__m128_op1[3]) = 0x370bdfec;
+ *((int *)&__m128_op1[2]) = 0xffecffec;
+ *((int *)&__m128_op1[1]) = 0x370bdfec;
+ *((int *)&__m128_op1[0]) = 0xffecffec;
+ *((int *)&__m128_result[3]) = 0x370bdfec;
+ *((int *)&__m128_result[2]) = 0xffecffec;
+ *((int *)&__m128_result[1]) = 0x370bdfec;
+ *((int *)&__m128_result[0]) = 0xffecffec;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x0000ff00;
+ *((int *)&__m128_op1[0]) = 0x00ff0000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffff0000;
+ *((int *)&__m128_op0[2]) = 0xffff0000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x40088040;
+ *((int *)&__m128_op1[2]) = 0x80040110;
+ *((int *)&__m128_op1[1]) = 0x40408010;
+ *((int *)&__m128_op1[0]) = 0x80200110;
+ *((int *)&__m128_result[3]) = 0xffff0000;
+ *((int *)&__m128_result[2]) = 0xffff0000;
+ *((int *)&__m128_result[1]) = 0x40408010;
+ *((int *)&__m128_result[0]) = 0x80200110;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xfffffffc;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xfffffffc;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xfffffffc;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xfffffffc;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000001b;
+ *((int *)&__m128_op0[2]) = 0x0000001b;
+ *((int *)&__m128_op0[1]) = 0x0000001b;
+ *((int *)&__m128_op0[0]) = 0x0000001b;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x0000001b;
+ *((int *)&__m128_result[2]) = 0x0000001b;
+ *((int *)&__m128_result[1]) = 0x0000001b;
+ *((int *)&__m128_result[0]) = 0x0000001b;
+ __m128_out = __lsx_vfadd_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x56411278;
+ *((int *)&__m128_op0[2]) = 0x43c0d41e;
+ *((int *)&__m128_op0[1]) = 0x0124d8f6;
+ *((int *)&__m128_op0[0]) = 0xa494006b;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x05010501;
+ *((int *)&__m128_op1[2]) = 0x05010501;
+ *((int *)&__m128_op1[1]) = 0x05010501;
+ *((int *)&__m128_op1[0]) = 0x0501050c;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x21f32eaf;
+ *((int *)&__m128_op0[2]) = 0x5b7a02c8;
+ *((int *)&__m128_op0[1]) = 0x407c2ca3;
+ *((int *)&__m128_op0[0]) = 0x2cbd0357;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00010400;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffe0001;
+ *((int *)&__m128_op0[2]) = 0xfffe0001;
+ *((int *)&__m128_op0[1]) = 0xfffe0001;
+ *((int *)&__m128_op0[0]) = 0xfffe0001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xfffe0001;
+ *((int *)&__m128_result[2]) = 0xfffe0001;
+ *((int *)&__m128_result[1]) = 0xfffe0001;
+ *((int *)&__m128_result[0]) = 0xfffe0001;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00002ebf;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x01000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00081f1f;
+ *((int *)&__m128_op0[2]) = 0x1f1f1f1f;
+ *((int *)&__m128_op0[1]) = 0x1f1f1f1f;
+ *((int *)&__m128_op0[0]) = 0x1f1f1f1f;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x021b7d24;
+ *((int *)&__m128_op0[2]) = 0x49678a35;
+ *((int *)&__m128_op0[1]) = 0x030298a6;
+ *((int *)&__m128_op0[0]) = 0x21030a49;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000002;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xf6548a17;
+ *((int *)&__m128_op0[2]) = 0x47e59090;
+ *((int *)&__m128_op0[1]) = 0x27b169bb;
+ *((int *)&__m128_op0[0]) = 0xb8145f50;
+ *((int *)&__m128_op1[3]) = 0x004eff62;
+ *((int *)&__m128_op1[2]) = 0x00d2ff76;
+ *((int *)&__m128_op1[1]) = 0xff700028;
+ *((int *)&__m128_op1[0]) = 0x00be00a0;
+ *((int *)&__m128_result[3]) = 0xb7032c34;
+ *((int *)&__m128_result[2]) = 0x093d35ab;
+ *((int *)&__m128_result[1]) = 0xe7a6533b;
+ *((int *)&__m128_result[0]) = 0x800001b8;
+ __m128_out = __lsx_vfmul_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsub_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x7fff0101;
+ *((int *)&__m128_op0[2]) = 0x81010102;
+ *((int *)&__m128_op0[1]) = 0x7fffffff;
+ *((int *)&__m128_op0[0]) = 0x81010102;
+ *((int *)&__m128_op1[3]) = 0x00000fff;
+ *((int *)&__m128_op1[2]) = 0xffffe000;
+ *((int *)&__m128_op1[1]) = 0x00001020;
+ *((int *)&__m128_op1[0]) = 0x20204000;
+ *((int *)&__m128_result[3]) = 0x7fff0101;
+ *((int *)&__m128_result[2]) = 0xffffe000;
+ *((int *)&__m128_result[1]) = 0x7fffffff;
+ *((int *)&__m128_result[0]) = 0xa0204000;
+ __m128_out = __lsx_vfsub_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000fff;
+ *((int *)&__m128_op1[2]) = 0xffffe000;
+ *((int *)&__m128_op1[1]) = 0x00001020;
+ *((int *)&__m128_op1[0]) = 0x20204000;
+ *((int *)&__m128_result[3]) = 0x80000fff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0x80001020;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfsub_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsub_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x54feed87;
+ *((int *)&__m128_op0[2]) = 0xbc3f2be1;
+ *((int *)&__m128_op0[1]) = 0x8064d8f6;
+ *((int *)&__m128_op0[0]) = 0xa494afcb;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xd8248069;
+ *((int *)&__m128_op0[0]) = 0x7f678077;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xd8248069;
+ *((int *)&__m128_op1[0]) = 0x7f678077;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x3f800000;
+ *((int *)&__m128_result[0]) = 0x3f800000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x7fc00000;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00070000;
+ *((int *)&__m128_op0[2]) = 0x00040000;
+ *((int *)&__m128_op0[1]) = 0x00030000;
+ *((int *)&__m128_op0[0]) = 0x00010000;
+ *((int *)&__m128_op1[3]) = 0x00070000;
+ *((int *)&__m128_op1[2]) = 0x00040000;
+ *((int *)&__m128_op1[1]) = 0x00030000;
+ *((int *)&__m128_op1[0]) = 0x00010000;
+ *((int *)&__m128_result[3]) = 0x3f800000;
+ *((int *)&__m128_result[2]) = 0x3f800000;
+ *((int *)&__m128_result[1]) = 0x3f800000;
+ *((int *)&__m128_result[0]) = 0x3f800000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00010001;
+ *((int *)&__m128_op1[2]) = 0x0001007c;
+ *((int *)&__m128_op1[1]) = 0x00010001;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00001fff;
+ *((int *)&__m128_op0[2]) = 0x00001fff;
+ *((int *)&__m128_op0[1]) = 0x00000003;
+ *((int *)&__m128_op0[0]) = 0xfffffffc;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0xfffffffc;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x7fc00000;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfdiv_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c
new file mode 100644
index 0000000..9706d7a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c
@@ -0,0 +1,83 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000008;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128d_op0[0]) = 0x685670d37e80682a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000080;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vfclass_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c
new file mode 100644
index 0000000..7166f95
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c
@@ -0,0 +1,74 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x7fff8000;
+ *((int *)&__m128_op0[1]) = 0x00010081;
+ *((int *)&__m128_op0[0]) = 0x00000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000020000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000100;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfe02fe02;
+ *((int *)&__m128_op0[2]) = 0xfe02fe02;
+ *((int *)&__m128_op0[1]) = 0xfe02fe02;
+ *((int *)&__m128_op0[0]) = 0xfe02fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000800000008;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000000c;
+ *((int *)&__m128_op0[2]) = 0x7fff000c;
+ *((int *)&__m128_op0[1]) = 0x10001000;
+ *((int *)&__m128_op0[0]) = 0x10001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000008000000080;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000020000000200;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000020000000200;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0c0b0a09;
+ *((int *)&__m128_op0[2]) = 0x0b0a0908;
+ *((int *)&__m128_op0[1]) = 0x0a090807;
+ *((int *)&__m128_op0[0]) = 0x09080706;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000008000000080;
+ __m128i_out = __lsx_vfclass_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
new file mode 100644
index 0000000..b448c20
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c
@@ -0,0 +1,244 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x01010101;
+ *((int *)&__m128_op0[0]) = 0x01010101;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7ef400ad;
+ *((int *)&__m128_op0[2]) = 0x21fc7081;
+ *((int *)&__m128_op0[1]) = 0x28bf0351;
+ *((int *)&__m128_op0[0]) = 0xec69b5f2;
+ *((int *)&__m128_op1[3]) = 0xff800000;
+ *((int *)&__m128_op1[2]) = 0xff800000;
+ *((int *)&__m128_op1[1]) = 0xff800000;
+ *((int *)&__m128_op1[0]) = 0x7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x01000100;
+ *((int *)&__m128_op0[0]) = 0x01000100;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x64e464e4;
+ *((int *)&__m128_op1[0]) = 0x64e464e4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffc0ff80;
+ *((int *)&__m128_op1[2]) = 0xff800000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xc0800000;
+ *((int *)&__m128_op1[3]) = 0x0000001b;
+ *((int *)&__m128_op1[2]) = 0x0000001b;
+ *((int *)&__m128_op1[1]) = 0x0000001b;
+ *((int *)&__m128_op1[0]) = 0x0000001b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000002;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000002;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x34500292;
+ *((int *)&__m128_op1[0]) = 0x0f3017d6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00830029;
+ *((int *)&__m128_op0[0]) = 0x0038ff50;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff7fff80;
+ *((int *)&__m128_op0[2]) = 0xff800001;
+ *((int *)&__m128_op0[1]) = 0xe593d844;
+ *((int *)&__m128_op0[0]) = 0xe593c8c4;
+ *((int *)&__m128_op1[3]) = 0xff800000;
+ *((int *)&__m128_op1[2]) = 0xff800000;
+ *((int *)&__m128_op1[1]) = 0xe593c8c4;
+ *((int *)&__m128_op1[0]) = 0xe593c8c4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x8a8a8a8a;
+ *((int *)&__m128_op1[2]) = 0x8a8a8a8a;
+ *((int *)&__m128_op1[1]) = 0x8a8a8a8a;
+ *((int *)&__m128_op1[0]) = 0x8a8a8a8a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x66b34f643c9c626a;
+ *((unsigned long *)&__m128d_op0[0]) = 0x38d60e366e547876;
+ *((unsigned long *)&__m128d_op1[1]) = 0x66b34f643c9c626a;
+ *((unsigned long *)&__m128d_op1[0]) = 0x38d60e366e547876;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000700000004fdff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000300000000fdff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xf2f444429d96dbe1;
+ *((unsigned long *)&__m128d_op0[0]) = 0xddd76c75f2f44442;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc1f03e1042208410;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffbfff7fffc000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff43dfffff81fb;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_caf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
new file mode 100644
index 0000000..98941b4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c
@@ -0,0 +1,516 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00007f00;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x01000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x08fdc221;
+ *((int *)&__m128_op0[2]) = 0xbfdb1927;
+ *((int *)&__m128_op0[1]) = 0x4303c67e;
+ *((int *)&__m128_op0[0]) = 0x9b7fb213;
+ *((int *)&__m128_op1[3]) = 0x0000800c;
+ *((int *)&__m128_op1[2]) = 0x0004300c;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000800;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00007fff;
+ *((int *)&__m128_op0[2]) = 0x00007fff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x2bfd9461;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x2bfd9461;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x01000000;
+ *((int *)&__m128_op0[0]) = 0x01000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xcd636363;
+ *((int *)&__m128_op1[2]) = 0xcd636363;
+ *((int *)&__m128_op1[1]) = 0xcd636363;
+ *((int *)&__m128_op1[0]) = 0xcd636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x007fffff;
+ *((int *)&__m128_op0[1]) = 0x007fffff;
+ *((int *)&__m128_op0[0]) = 0xff800000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x0000cecd;
+ *((int *)&__m128_op1[2]) = 0x00004657;
+ *((int *)&__m128_op1[1]) = 0x0000c900;
+ *((int *)&__m128_op1[0]) = 0x00011197;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xf51df8db;
+ *((int *)&__m128_op0[2]) = 0xd6050189;
+ *((int *)&__m128_op0[1]) = 0x0983e2db;
+ *((int *)&__m128_op0[0]) = 0xf235ed87;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x3ea5016b;
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
+ *((int *)&__m128_op1[0]) = 0x3f6fb04d;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xffa8ff9f;
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
+ *((int *)&__m128_op1[0]) = 0xffabff99;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000ff00;
+ *((int *)&__m128_op1[3]) = 0x40404040;
+ *((int *)&__m128_op1[2]) = 0x40404040;
+ *((int *)&__m128_op1[1]) = 0x40404040;
+ *((int *)&__m128_op1[0]) = 0x40404040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x3bcc5098;
+ *((int *)&__m128_op1[2]) = 0x703fa5f0;
+ *((int *)&__m128_op1[1]) = 0xab7b3134;
+ *((int *)&__m128_op1[0]) = 0x9703f605;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x000000ff;
+ *((int *)&__m128_op0[0]) = 0xfe01fd02;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x0001fe01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x000000ff;
+ *((int *)&__m128_op0[0]) = 0xfe01fd02;
+ *((int *)&__m128_op1[3]) = 0x00000001;
+ *((int *)&__m128_op1[2]) = 0x00000100;
+ *((int *)&__m128_op1[1]) = 0x00000001;
+ *((int *)&__m128_op1[0]) = 0x00000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00800000;
+ *((int *)&__m128_op0[0]) = 0x00800000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00800000;
+ *((int *)&__m128_op1[0]) = 0x00800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xc2409edab019323f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x460f3b393ef4be3a;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0100000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128d_op0[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128d_op1[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_ceq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0100010000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000c000ffffc000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffe000ffdf;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xd78cfd70b5f65d77;
+ *((unsigned long *)&__m128d_op1[0]) = 0x5779108fdedda7e5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000ff0000ffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
new file mode 100644
index 0000000..409bce0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c
@@ -0,0 +1,530 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00001802;
+ *((int *)&__m128_op0[0]) = 0x041b0013;
+ *((int *)&__m128_op1[3]) = 0xff800000;
+ *((int *)&__m128_op1[2]) = 0xff800000;
+ *((int *)&__m128_op1[1]) = 0xff800000;
+ *((int *)&__m128_op1[0]) = 0xc3080000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x17fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000404;
+ *((int *)&__m128_op1[2]) = 0x00000383;
+ *((int *)&__m128_op1[1]) = 0xffffe000;
+ *((int *)&__m128_op1[0]) = 0xffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x000000fe;
+ *((int *)&__m128_op0[2]) = 0x808000ff;
+ *((int *)&__m128_op0[1]) = 0x000000fe;
+ *((int *)&__m128_op0[0]) = 0x808000fe;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000020;
+ *((int *)&__m128_op0[2]) = 0x00000020;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x0000ffc1;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000004;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xe0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x01010001;
+ *((int *)&__m128_op1[2]) = 0x00010001;
+ *((int *)&__m128_op1[1]) = 0x01010301;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffff00;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000001;
+ *((int *)&__m128_op1[2]) = 0x00000001;
+ *((int *)&__m128_op1[1]) = 0x00000001;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00060fbf;
+ *((int *)&__m128_op1[2]) = 0x02040fbf;
+ *((int *)&__m128_op1[1]) = 0x00020fbf;
+ *((int *)&__m128_op1[0]) = 0x02000fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0a752a55;
+ *((int *)&__m128_op0[1]) = 0x0a753500;
+ *((int *)&__m128_op0[0]) = 0x950fa306;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x380fdfdf;
+ *((int *)&__m128_op1[0]) = 0xc0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000007fff800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000080007f80800;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff80800001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff80800001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x5f675e96a8d359f5;
+ *((unsigned long *)&__m128d_op0[0]) = 0x46387f95d9a68001;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x131211101211100f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x11100f0e100f0e0d;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000002a000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffff7f8c;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfcfcfcfcfcfc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffff359f358;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffffff359f358;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128d_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128d_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000001;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x4f804f81;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x4f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7fff0007;
+ *((int *)&__m128_op0[2]) = 0xe215b122;
+ *((int *)&__m128_op0[1]) = 0x7ffeffff;
+ *((int *)&__m128_op0[0]) = 0x7bfff828;
+ *((int *)&__m128_op1[3]) = 0x80010009;
+ *((int *)&__m128_op1[2]) = 0x816ac5de;
+ *((int *)&__m128_op1[1]) = 0x80010001;
+ *((int *)&__m128_op1[0]) = 0x84000bd8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xfefa0000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x9c9c9c9c;
+ *((int *)&__m128_op1[2]) = 0x9c9c9c9c;
+ *((int *)&__m128_op1[1]) = 0x9c9c9c9c;
+ *((int *)&__m128_op1[0]) = 0x9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0c0b0a09;
+ *((int *)&__m128_op0[2]) = 0x0b0a0908;
+ *((int *)&__m128_op0[1]) = 0x0a090807;
+ *((int *)&__m128_op0[0]) = 0x09080706;
+ *((int *)&__m128_op1[3]) = 0x0c0b0a09;
+ *((int *)&__m128_op1[2]) = 0x0b0a0908;
+ *((int *)&__m128_op1[1]) = 0x0a090807;
+ *((int *)&__m128_op1[0]) = 0x09080706;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000020;
+ *((int *)&__m128_op1[2]) = 0x00000020;
+ *((int *)&__m128_op1[1]) = 0x0000001f;
+ *((int *)&__m128_op1[0]) = 0x0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7ff80000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x7ff80000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff80ff0010ff06;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128d_op1[0]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
new file mode 100644
index 0000000..39c9cf7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c
@@ -0,0 +1,476 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x56411278;
+ *((int *)&__m128_op0[2]) = 0x43c0d41e;
+ *((int *)&__m128_op0[1]) = 0x0124d8f6;
+ *((int *)&__m128_op0[0]) = 0xa494006b;
+ *((int *)&__m128_op1[3]) = 0x7f800000;
+ *((int *)&__m128_op1[2]) = 0xff800000;
+ *((int *)&__m128_op1[1]) = 0xff800000;
+ *((int *)&__m128_op1[0]) = 0xff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x84939413;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000002;
+ *((int *)&__m128_op0[0]) = 0xbefcb21e;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xfffefff6;
+ *((int *)&__m128_op0[0]) = 0xfff80002;
+ *((int *)&__m128_op1[3]) = 0x000000c5;
+ *((int *)&__m128_op1[2]) = 0xac01015b;
+ *((int *)&__m128_op1[1]) = 0xaaacac88;
+ *((int *)&__m128_op1[0]) = 0xa3a9a96a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff84fff4;
+ *((int *)&__m128_op0[2]) = 0xff84fff4;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff0;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x11000f20;
+ *((int *)&__m128_op0[2]) = 0x10000e20;
+ *((int *)&__m128_op0[1]) = 0x0f000d20;
+ *((int *)&__m128_op0[0]) = 0x0e000c20;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000c00;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00bd003d;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000005;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000005;
+ *((int *)&__m128_op1[3]) = 0xfffefffe;
+ *((int *)&__m128_op1[2]) = 0xfffefffe;
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
+ *((int *)&__m128_op1[0]) = 0xfffefffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xff800001;
+ *((int *)&__m128_op0[0]) = 0x0f800000;
+ *((int *)&__m128_op1[3]) = 0x00000009;
+ *((int *)&__m128_op1[2]) = 0x00000009;
+ *((int *)&__m128_op1[1]) = 0xff80000a;
+ *((int *)&__m128_op1[0]) = 0x0f800009;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
+ *((int *)&__m128_op0[1]) = 0x3b5eae24;
+ *((int *)&__m128_op0[0]) = 0xab7e3848;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00003f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x63636363;
+ *((int *)&__m128_op0[2]) = 0x3f3e47c1;
+ *((int *)&__m128_op0[1]) = 0x41f8e080;
+ *((int *)&__m128_op0[0]) = 0xf1ef4eaa;
+ *((int *)&__m128_op1[3]) = 0x0000cecd;
+ *((int *)&__m128_op1[2]) = 0x00004657;
+ *((int *)&__m128_op1[1]) = 0x0000c900;
+ *((int *)&__m128_op1[0]) = 0x00011197;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_clt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x454c2996;
+ *((int *)&__m128_op0[2]) = 0x0ffe354e;
+ *((int *)&__m128_op0[1]) = 0x9e063f80;
+ *((int *)&__m128_op0[0]) = 0x2742ba3e;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x42652524;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00070000;
+ *((int *)&__m128_op0[2]) = 0x00050000;
+ *((int *)&__m128_op0[1]) = 0x00030000;
+ *((int *)&__m128_op0[0]) = 0x00010000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xff81007c;
+ *((int *)&__m128_op1[1]) = 0xffb7005f;
+ *((int *)&__m128_op1[0]) = 0x0070007c;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0000006f;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfbffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7bffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xfbffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x7bffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0002a000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x0002a000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xfc606ec5;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x14155445;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x01030103;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00060fbf;
+ *((int *)&__m128_op0[2]) = 0x02040fbf;
+ *((int *)&__m128_op0[1]) = 0x00020fbf;
+ *((int *)&__m128_op0[0]) = 0x02000fbf;
+ *((int *)&__m128_op1[3]) = 0x63636363;
+ *((int *)&__m128_op1[2]) = 0x63636363;
+ *((int *)&__m128_op1[1]) = 0xffd27db0;
+ *((int *)&__m128_op1[0]) = 0x10d20fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f800000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000008;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000036de0000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000003be14000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128d_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xe93d0bd19ff07013;
+ *((unsigned long *)&__m128d_op1[0]) = 0x65017c2ac9ca9fd0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x007f007f007f007e;
+ *((unsigned long *)&__m128d_op1[0]) = 0x007f007f007effc6;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000015800000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f8100017f810001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f8100017f810001;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_clt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x004200a000200001;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff00007fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128d_op1[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000001e;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000001580000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
new file mode 100644
index 0000000..c3da43b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c
@@ -0,0 +1,378 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x7ff80000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x0bd80bd8;
+ *((int *)&__m128_op1[2]) = 0x0bdfffff;
+ *((int *)&__m128_op1[1]) = 0x0bd80bd8;
+ *((int *)&__m128_op1[0]) = 0x0bd80000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00ff0077;
+ *((int *)&__m128_op0[2]) = 0x00070077;
+ *((int *)&__m128_op0[1]) = 0x00e600ef;
+ *((int *)&__m128_op0[0]) = 0x00ee01de;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00100010;
+ *((int *)&__m128_op0[2]) = 0x00100010;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x000000ff;
+ *((int *)&__m128_op1[0]) = 0xfe01fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xbf800000;
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
+ *((int *)&__m128_op0[1]) = 0xcf000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x003f0000;
+ *((int *)&__m128_op1[2]) = 0x0000003f;
+ *((int *)&__m128_op1[1]) = 0x003f0000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x01ff01ff;
+ *((int *)&__m128_op0[2]) = 0x01ff01ff;
+ *((int *)&__m128_op0[1]) = 0x01ff01ff;
+ *((int *)&__m128_op0[0]) = 0x01ff01ff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x20202020;
+ *((int *)&__m128_op0[2]) = 0x20202020;
+ *((int *)&__m128_op0[1]) = 0x20202020;
+ *((int *)&__m128_op0[0]) = 0x20207fff;
+ *((int *)&__m128_op1[3]) = 0x32d3f35e;
+ *((int *)&__m128_op1[2]) = 0xcd509d13;
+ *((int *)&__m128_op1[1]) = 0x3e081b3c;
+ *((int *)&__m128_op1[0]) = 0x93f6b356;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffff0000;
+ *((int *)&__m128_op0[2]) = 0xffff0000;
+ *((int *)&__m128_op0[1]) = 0x40408010;
+ *((int *)&__m128_op0[0]) = 0x80200110;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x80000000;
+ *((int *)&__m128_op0[2]) = 0x80000008;
+ *((int *)&__m128_op0[1]) = 0xa2f54a1e;
+ *((int *)&__m128_op0[0]) = 0xa2f54a1e;
+ *((int *)&__m128_op1[3]) = 0x80000000;
+ *((int *)&__m128_op1[2]) = 0x80000008;
+ *((int *)&__m128_op1[1]) = 0xa2f54a1e;
+ *((int *)&__m128_op1[0]) = 0xa2f54a1e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000fc00;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000fc00;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000020302030;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000020302030;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x5d7f5d007f6a007f;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7fff7fff7f00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7ff000ff6220c0c1;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffe8081000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x1c083b1f3b1f3b1f;
+ *((unsigned long *)&__m128d_op0[0]) = 0xf244b948a323ab42;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000100fe000070a1;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000115ffffffa1;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffff8f8da00;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000003ea5016c;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffefefd3f7027c5;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000ffce;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x400000003fffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x4000000040000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128d_op0[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
new file mode 100644
index 0000000..5228dbe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c
@@ -0,0 +1,170 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffffeff;
+ *((int *)&__m128_op0[2]) = 0xfffffeff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffcff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00800000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xf4b6f3f5;
+ *((int *)&__m128_op0[0]) = 0x2f4ef4a8;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x08080808;
+ *((int *)&__m128_op1[2]) = 0x08080808;
+ *((int *)&__m128_op1[1]) = 0x08080808;
+ *((int *)&__m128_op1[0]) = 0x08080808;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000ffce;
+ *((int *)&__m128_op1[3]) = 0xffff0001;
+ *((int *)&__m128_op1[2]) = 0x1cf0c569;
+ *((int *)&__m128_op1[1]) = 0xc0000002;
+ *((int *)&__m128_op1[0]) = 0xb0995850;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0a752a55;
+ *((int *)&__m128_op0[1]) = 0x0a753500;
+ *((int *)&__m128_op0[0]) = 0x950fa306;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x0a752a55;
+ *((int *)&__m128_op1[1]) = 0x0a753500;
+ *((int *)&__m128_op1[0]) = 0x950fa306;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffffffdfffdf;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000ffffffdfffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128d_op0[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
new file mode 100644
index 0000000..a2beff5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c
@@ -0,0 +1,253 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x0000ffff;
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
+ *((int *)&__m128_op0[1]) = 0x0000ffff;
+ *((int *)&__m128_op0[0]) = 0x0000fffe;
+ *((int *)&__m128_op1[3]) = 0x0000ffff;
+ *((int *)&__m128_op1[2]) = 0x0000ffff;
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
+ *((int *)&__m128_op1[0]) = 0x0000fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f800000;
+ *((int *)&__m128_op0[2]) = 0x7f800000;
+ *((int *)&__m128_op0[1]) = 0x7f800000;
+ *((int *)&__m128_op0[0]) = 0x7f800000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x0000fffe;
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffff0008;
+ *((int *)&__m128_op1[3]) = 0xffc2ffe0;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x0000ffc1;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000008;
+ *((int *)&__m128_op0[1]) = 0x00200020;
+ *((int *)&__m128_op0[0]) = 0x00200020;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffefffe;
+ *((int *)&__m128_op0[2]) = 0xfffefffe;
+ *((int *)&__m128_op0[1]) = 0xfffefffe;
+ *((int *)&__m128_op0[0]) = 0xfffefffe;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xf001f001;
+ *((int *)&__m128_op1[0]) = 0x0101f002;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfeffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xfeffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000fff;
+ *((int *)&__m128_op1[2]) = 0xffffe000;
+ *((int *)&__m128_op1[1]) = 0x00001020;
+ *((int *)&__m128_op1[0]) = 0x20204000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfefd7f7f7f7f7f7e;
+ *((unsigned long *)&__m128d_op0[0]) = 0xdffdbffeba6f5543;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff3d06ffff4506;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7ffffffe7ffff800;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000003bfb4000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100010100;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff00011cf0c569;
+ *((unsigned long *)&__m128d_op0[0]) = 0xc0000002b0995850;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128d_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000044470000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_cun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
new file mode 100644
index 0000000..bfa4914
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c
@@ -0,0 +1,214 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x80000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00a300a3;
+ *((int *)&__m128_op1[2]) = 0x00a300a3;
+ *((int *)&__m128_op1[1]) = 0x00a300a3;
+ *((int *)&__m128_op1[0]) = 0x00a300a3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xb8ec43be;
+ *((int *)&__m128_op1[2]) = 0xfe38e64b;
+ *((int *)&__m128_op1[1]) = 0x6477d042;
+ *((int *)&__m128_op1[0]) = 0x343cce24;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000010;
+ *((int *)&__m128_op0[2]) = 0x00100010;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00020000;
+ *((int *)&__m128_op0[0]) = 0xffff0001;
+ *((int *)&__m128_op1[3]) = 0x63636363;
+ *((int *)&__m128_op1[2]) = 0x63636363;
+ *((int *)&__m128_op1[1]) = 0x63636363;
+ *((int *)&__m128_op1[0]) = 0x63636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x03080401;
+ *((int *)&__m128_op0[2]) = 0x0d090107;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0a0a0a000a0a0a00;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0a0a0a0009090900;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffff01;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x67157b5100005000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x387c7e0a133f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128d_op0[0]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_saf_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
new file mode 100644
index 0000000..bc57393
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c
@@ -0,0 +1,450 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xf2f2e5e5;
+ *((int *)&__m128_op0[2]) = 0xe5e5e5e5;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xe5e5e5e5;
+ *((int *)&__m128_op1[2]) = 0xe5e5e5e5;
+ *((int *)&__m128_op1[1]) = 0xe5e5e5e5;
+ *((int *)&__m128_op1[0]) = 0xe4e4e46d;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00800000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x1f400000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x14ccc632;
+ *((int *)&__m128_op0[2]) = 0x0076a4d2;
+ *((int *)&__m128_op0[1]) = 0x685670d2;
+ *((int *)&__m128_op0[0]) = 0x7e00682a;
+ *((int *)&__m128_op1[3]) = 0x14ccc632;
+ *((int *)&__m128_op1[2]) = 0x0076a4d2;
+ *((int *)&__m128_op1[1]) = 0x685670d2;
+ *((int *)&__m128_op1[0]) = 0x7e00682a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010001;
+ *((int *)&__m128_op0[2]) = 0x00010001;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xc6c6c6c6;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xc6c6c6c6;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xc6c6c6c6;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xc6c6c6c6;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000006;
+ *((int *)&__m128_op1[2]) = 0x00007fff;
+ *((int *)&__m128_op1[1]) = 0x00000008;
+ *((int *)&__m128_op1[0]) = 0xffffa209;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00fc0000;
+ *((int *)&__m128_op1[3]) = 0xfe07e5fe;
+ *((int *)&__m128_op1[2]) = 0xfefdddfe;
+ *((int *)&__m128_op1[1]) = 0x00020100;
+ *((int *)&__m128_op1[0]) = 0xfedd0c00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffff0000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000fffd;
+ *((int *)&__m128_op1[3]) = 0x7fffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00008000;
+ *((int *)&__m128_op1[2]) = 0x3f80ffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x370bdfec;
+ *((int *)&__m128_op0[2]) = 0xffecffec;
+ *((int *)&__m128_op0[1]) = 0x370bdfec;
+ *((int *)&__m128_op0[0]) = 0xa2eb9931;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000040;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000040;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xc2fc0000;
+ *((int *)&__m128_op1[2]) = 0xc3040000;
+ *((int *)&__m128_op1[1]) = 0xc2fc0000;
+ *((int *)&__m128_op1[0]) = 0xc3040000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00fe00fe;
+ *((int *)&__m128_op0[2]) = 0x000200fe;
+ *((int *)&__m128_op0[1]) = 0x00fe00fe;
+ *((int *)&__m128_op0[0]) = 0x000200fe;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000004;
+ *((int *)&__m128_op1[0]) = 0x55555555;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000158;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffa8;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xf3e6586b;
+ *((int *)&__m128_op0[2]) = 0x60d7b152;
+ *((int *)&__m128_op0[1]) = 0xf7077b93;
+ *((int *)&__m128_op0[0]) = 0x4ac0e000;
+ *((int *)&__m128_op1[3]) = 0x1498507a;
+ *((int *)&__m128_op1[2]) = 0x144d0050;
+ *((int *)&__m128_op1[1]) = 0x7b370981;
+ *((int *)&__m128_op1[0]) = 0xc01200e0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffc2007a;
+ *((int *)&__m128_op0[2]) = 0xff230027;
+ *((int *)&__m128_op0[1]) = 0x0080005e;
+ *((int *)&__m128_op0[0]) = 0xff600001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000100010001fffd;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000004fc04f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128d_op1[0]) = 0x545cab1d81a83bea;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_seq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfefd7f7f7f7f7f7e;
+ *((unsigned long *)&__m128d_op0[0]) = 0xdffdbffeba6f5543;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfefd7f7f7f7f7f7e;
+ *((unsigned long *)&__m128d_op1[0]) = 0xdffdbffeba6f5543;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffff700000009;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffff700000009;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x4fa432d67fc00000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffcffff00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000fffd000a0000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xf0fd800080000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000a00028004000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00820082ff81ff81;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff81ff81ff81ff81;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0007000100040102;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0003000100010101;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0007000100040102;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000100010101;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sueq_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
new file mode 100644
index 0000000..87cb8da7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c
@@ -0,0 +1,407 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffdfff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffdfff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffe000;
+ *((int *)&__m128_op1[0]) = 0x01ffe200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010002;
+ *((int *)&__m128_op0[2]) = 0x0000fe7d;
+ *((int *)&__m128_op0[1]) = 0x00010002;
+ *((int *)&__m128_op0[0]) = 0x0000fe02;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x0000007b;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x1223dabf;
+ *((int *)&__m128_op0[2]) = 0x4c3b3549;
+ *((int *)&__m128_op0[1]) = 0x8e8f8626;
+ *((int *)&__m128_op0[0]) = 0xf15be124;
+ *((int *)&__m128_op1[3]) = 0xfffffacd;
+ *((int *)&__m128_op1[2]) = 0xb6dbecac;
+ *((int *)&__m128_op1[1]) = 0x1f5533a6;
+ *((int *)&__m128_op1[0]) = 0x94f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfbffffff;
+ *((int *)&__m128_op0[0]) = 0x27001517;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffff53d9;
+ *((int *)&__m128_op0[1]) = 0xffff0001;
+ *((int *)&__m128_op0[0]) = 0xffff9515;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00010001;
+ *((int *)&__m128_op1[2]) = 0x00010001;
+ *((int *)&__m128_op1[1]) = 0x00010001;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000080;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00df020f;
+ *((int *)&__m128_op0[0]) = 0x0078007f;
+ *((int *)&__m128_op1[3]) = 0x0037ffd4;
+ *((int *)&__m128_op1[2]) = 0x0083ffe5;
+ *((int *)&__m128_op1[1]) = 0x001e0052;
+ *((int *)&__m128_op1[0]) = 0x001ffff9;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00ff00ff;
+ *((int *)&__m128_op0[0]) = 0x00ff00ff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x05452505;
+ *((int *)&__m128_op0[1]) = 0x00000004;
+ *((int *)&__m128_op0[0]) = 0x442403e4;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000101;
+ *((int *)&__m128_op0[2]) = 0x00000101;
+ *((int *)&__m128_op0[1]) = 0x00000101;
+ *((int *)&__m128_op0[0]) = 0x00000101;
+ *((int *)&__m128_op1[3]) = 0x00000002;
+ *((int *)&__m128_op1[2]) = 0x00000002;
+ *((int *)&__m128_op1[1]) = 0x00000002;
+ *((int *)&__m128_op1[0]) = 0x00000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010000;
+ *((int *)&__m128_op0[2]) = 0x00010000;
+ *((int *)&__m128_op0[1]) = 0x0000cd63;
+ *((int *)&__m128_op0[0]) = 0x0000cd63;
+ *((int *)&__m128_op1[3]) = 0xffffcd63;
+ *((int *)&__m128_op1[2]) = 0xffffcd63;
+ *((int *)&__m128_op1[1]) = 0xffffd765;
+ *((int *)&__m128_op1[0]) = 0xffffd765;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffff00ff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffff0000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0x0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff0c8000c212;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfefffeff7f002d06;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00f0008100800080;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00f000807000009e;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffe00029f9f6061;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000c0010000a186;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00067fff0002a207;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sle_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff80000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x3fbf3fbf00007fff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7fff7fff7ff8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000013ec13e;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc03fc03fc0ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff00018d8b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x67eb85af0000b000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sule_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
new file mode 100644
index 0000000..3845e8e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c
@@ -0,0 +1,512 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x0000ffff;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x0000ffff;
+ *((int *)&__m128_op1[0]) = 0x0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f800000;
+ *((int *)&__m128_op0[2]) = 0x7f800000;
+ *((int *)&__m128_op0[1]) = 0x7f800000;
+ *((int *)&__m128_op0[0]) = 0x7f800000;
+ *((int *)&__m128_op1[3]) = 0x7f800000;
+ *((int *)&__m128_op1[2]) = 0x7f800000;
+ *((int *)&__m128_op1[1]) = 0x7f800000;
+ *((int *)&__m128_op1[0]) = 0x7f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0x00007f01;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffff02;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x05452505;
+ *((int *)&__m128_op1[1]) = 0x00000004;
+ *((int *)&__m128_op1[0]) = 0x442403e4;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x5f675e96;
+ *((int *)&__m128_op0[2]) = 0xe29a5a60;
+ *((int *)&__m128_op0[1]) = 0x7fff7fff;
+ *((int *)&__m128_op0[0]) = 0x7fff7fff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x5e695e95;
+ *((int *)&__m128_op1[0]) = 0xe1cb5a01;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00800080;
+ *((int *)&__m128_op0[2]) = 0x00800080;
+ *((int *)&__m128_op0[1]) = 0x0080006b;
+ *((int *)&__m128_op0[0]) = 0x0000000b;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x80808080;
+ *((int *)&__m128_op1[0]) = 0x806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f800000;
+ *((int *)&__m128_op0[2]) = 0x7f800000;
+ *((int *)&__m128_op0[1]) = 0x7f800000;
+ *((int *)&__m128_op0[0]) = 0x7f800000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff800000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xff800000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfffefffe;
+ *((int *)&__m128_op0[0]) = 0xfffffffc;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
+ *((int *)&__m128_op1[0]) = 0xfffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffc2ffe7;
+ *((int *)&__m128_op0[2]) = 0x00000007;
+ *((int *)&__m128_op0[1]) = 0x0000ffc1;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xfffff1a0;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x153e3e49;
+ *((int *)&__m128_op0[2]) = 0x307d0771;
+ *((int *)&__m128_op0[1]) = 0x0d8e3670;
+ *((int *)&__m128_op0[0]) = 0x6ac02b9b;
+ *((int *)&__m128_op1[3]) = 0x55aa55c3;
+ *((int *)&__m128_op1[2]) = 0xd5aa55c4;
+ *((int *)&__m128_op1[1]) = 0xaa55556f;
+ *((int *)&__m128_op1[0]) = 0xd5aaaac1;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0x0015172b;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xfffffffe;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xfffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffff0000;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010001;
+ *((int *)&__m128_op0[2]) = 0x00010001;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x86dd8341;
+ *((int *)&__m128_op1[2]) = 0xb164f12b;
+ *((int *)&__m128_op1[1]) = 0x9611c398;
+ *((int *)&__m128_op1[0]) = 0x5b3159f5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sult_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000300000003;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xe93d0bd19ff07013;
+ *((unsigned long *)&__m128d_op0[0]) = 0x65017c2ac9ca9fd0;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000001021;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128d_op0[0]) = 0x685670d37e80682a;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0080000000800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x345002920f3017d6;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_slt_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff8607db959f;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff0cff78ff96ff14;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ef8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128d_op0[0]) = 0x685670d37e80682a;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffee00000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sult_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
new file mode 100644
index 0000000..964eff7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00003fee;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000004;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000002;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x03574e3a;
+ *((int *)&__m128_op1[2]) = 0x03574e3a;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00010400;
+ *((int *)&__m128_op1[3]) = 0x10f917d7;
+ *((int *)&__m128_op1[2]) = 0x2d3d01e4;
+ *((int *)&__m128_op1[1]) = 0x203e16d1;
+ *((int *)&__m128_op1[0]) = 0x16de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000101f;
+ *((int *)&__m128_op0[2]) = 0xffff8b68;
+ *((int *)&__m128_op0[1]) = 0x00000b6f;
+ *((int *)&__m128_op0[0]) = 0xffff8095;
+ *((int *)&__m128_op1[3]) = 0x10f917d7;
+ *((int *)&__m128_op1[2]) = 0x2d3d01e4;
+ *((int *)&__m128_op1[1]) = 0x203e16d1;
+ *((int *)&__m128_op1[0]) = 0x16de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x11000f20;
+ *((int *)&__m128_op0[2]) = 0x10000e20;
+ *((int *)&__m128_op0[1]) = 0x0f000d20;
+ *((int *)&__m128_op0[0]) = 0x0e000c20;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00050005;
+ *((int *)&__m128_op0[2]) = 0x00050005;
+ *((int *)&__m128_op0[1]) = 0x00050005;
+ *((int *)&__m128_op0[0]) = 0x00050005;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x15d926c7;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000e41b;
+ *((int *)&__m128_op1[3]) = 0xfffffacd;
+ *((int *)&__m128_op1[2]) = 0xb6dbecac;
+ *((int *)&__m128_op1[1]) = 0x1f5533a6;
+ *((int *)&__m128_op1[0]) = 0x94f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x04040504;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x04040504;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0001000c;
+ *((int *)&__m128_op0[2]) = 0xfffffff2;
+ *((int *)&__m128_op0[1]) = 0x0001000d;
+ *((int *)&__m128_op0[0]) = 0xfffffff1;
+ *((int *)&__m128_op1[3]) = 0xffff8a17;
+ *((int *)&__m128_op1[2]) = 0xffffc758;
+ *((int *)&__m128_op1[1]) = 0xffff69bb;
+ *((int *)&__m128_op1[0]) = 0xffffad3b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff800000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xff800000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffff1739;
+ *((int *)&__m128_op1[2]) = 0xffff48aa;
+ *((int *)&__m128_op1[1]) = 0xffff2896;
+ *((int *)&__m128_op1[0]) = 0xffff5b88;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000003;
+ *((int *)&__m128_op0[0]) = 0x0000003f;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000003;
+ *((int *)&__m128_op1[0]) = 0x0000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x084d12ce;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x24170000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7474f6fd7474fefe;
+ *((unsigned long *)&__m128d_op0[0]) = 0xf474f6fef474f6fe;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x1817161517161514;
+ *((unsigned long *)&__m128d_op1[0]) = 0x1615141315141312;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0101fe870101fe87;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0101fe8700000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long *)&__m128d_op1[0]) = 0xf0bc9a5278285a4a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000007fffa9ed;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f8000017fffca8b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffff7603;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sne_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128d_op1[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00ff000100ff00fe;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff003000ff00a0;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000005e695e95;
+ *((unsigned long *)&__m128d_op1[0]) = 0x5e695e96c396b402;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sune_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
new file mode 100644
index 0000000..ea47baf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c
@@ -0,0 +1,269 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000007f;
+ *((int *)&__m128_op0[2]) = 0x0000007f;
+ *((int *)&__m128_op0[1]) = 0x0000007f;
+ *((int *)&__m128_op0[0]) = 0x0000007f;
+ *((int *)&__m128_op1[3]) = 0x3ff00000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xfffc0020;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x2757de72;
+ *((int *)&__m128_op0[2]) = 0x33d771a3;
+ *((int *)&__m128_op0[1]) = 0x166891d5;
+ *((int *)&__m128_op0[0]) = 0x1e8b7eff;
+ *((int *)&__m128_op1[3]) = 0x2757de72;
+ *((int *)&__m128_op1[2]) = 0x33d771a3;
+ *((int *)&__m128_op1[1]) = 0x166891d5;
+ *((int *)&__m128_op1[0]) = 0x1e8b7eff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00fe00ff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffffe;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xffffff02;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000000d;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xfffffe03;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xfffffe03;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xbafebb00;
+ *((int *)&__m128_op1[2]) = 0xffd500fe;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xbffffffe;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x80000000;
+ *((int *)&__m128_op0[2]) = 0x80000000;
+ *((int *)&__m128_op0[1]) = 0x80000000;
+ *((int *)&__m128_op0[0]) = 0x80000000;
+ *((int *)&__m128_op1[3]) = 0x000000ff;
+ *((int *)&__m128_op1[2]) = 0x0000857a;
+ *((int *)&__m128_op1[1]) = 0x05fafe01;
+ *((int *)&__m128_op1[0]) = 0x01fe000e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7fff7fff;
+ *((int *)&__m128_op0[2]) = 0x7fff7fff;
+ *((int *)&__m128_op0[1]) = 0xbf6b8101;
+ *((int *)&__m128_op0[0]) = 0x81018101;
+ *((int *)&__m128_op1[3]) = 0xe3636363;
+ *((int *)&__m128_op1[2]) = 0x63abdf16;
+ *((int *)&__m128_op1[1]) = 0x41f8e080;
+ *((int *)&__m128_op1[0]) = 0x16161198;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000005d5d;
+ *((unsigned long *)&__m128d_op1[1]) = 0x08fdc221bfdb1927;
+ *((unsigned long *)&__m128d_op1[0]) = 0x4303c67e9b7fb213;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fffffff7ffffffb;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000040002;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffff000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000d00000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sor_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
new file mode 100644
index 0000000..68cb5a5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c
@@ -0,0 +1,335 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xe17fe003;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x0000ffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00190819;
+ *((int *)&__m128_op1[2]) = 0x00190019;
+ *((int *)&__m128_op1[1]) = 0x00190819;
+ *((int *)&__m128_op1[0]) = 0x00190019;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfe800000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0x7fffffff;
+ *((int *)&__m128_op1[2]) = 0x82bb9784;
+ *((int *)&__m128_op1[1]) = 0x7fffffff;
+ *((int *)&__m128_op1[0]) = 0xc6bb97ac;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x7f3f0180;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xa2321469;
+ *((int *)&__m128_op0[0]) = 0x7fd03f7f;
+ *((int *)&__m128_op1[3]) = 0x00000406;
+ *((int *)&__m128_op1[2]) = 0x00000406;
+ *((int *)&__m128_op1[1]) = 0x02020202;
+ *((int *)&__m128_op1[0]) = 0x0202fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xfffffff5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000014;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000014;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xfffc0004;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x67eb85b0;
+ *((int *)&__m128_op0[2]) = 0xb2ebb001;
+ *((int *)&__m128_op0[1]) = 0xc8847ef6;
+ *((int *)&__m128_op0[0]) = 0xed3f2000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0002de46;
+ *((int *)&__m128_op0[2]) = 0x682de060;
+ *((int *)&__m128_op0[1]) = 0x09b50da6;
+ *((int *)&__m128_op0[0]) = 0xe67b8fc0;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x084d12ce;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x24170000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00ffffff;
+ *((int *)&__m128_op0[0]) = 0x00ffffff;
+ *((int *)&__m128_op1[3]) = 0x0000feff;
+ *((int *)&__m128_op1[2]) = 0x23560000;
+ *((int *)&__m128_op1[1]) = 0x0000fd16;
+ *((int *)&__m128_op1[0]) = 0x54860000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xfffffffe;
+ *((int *)&__m128_op0[0]) = 0xfffff784;
+ *((int *)&__m128_op1[3]) = 0x0177fff0;
+ *((int *)&__m128_op1[2]) = 0xfffffff0;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x011ff8bc;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0002000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ff00ff00ff00fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffebd06fffe820c;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fff7ffe7fff3506;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ffffffeffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128d_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128d_op1[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001fffe0001fefc;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0007000000050000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0003000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcmp_sun_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c
new file mode 100644
index 0000000..d4a86e2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00e0000000e00000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002a55005501;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002a55000001;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x36280000;
+ *((int *)&__m128_result[1]) = 0x42a00000;
+ *((int *)&__m128_result[0]) = 0x42a02000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xf436f3f5;
+ *((int *)&__m128_op0[0]) = 0x2f4ef4a8;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffcfb799f1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0282800002828282;
+ *((int *)&__m128_result[3]) = 0xffffe000;
+ *((int *)&__m128_result[2]) = 0xffffe000;
+ *((int *)&__m128_result[1]) = 0xc1f6e000;
+ *((int *)&__m128_result[0]) = 0xbb3e2000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000040004000100;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x36de0000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x3be14000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x41dfffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x403be000;
+ *((int *)&__m128_result[2]) = 0xffffe000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x63637687;
+ *((int *)&__m128_op0[2]) = 0x636316bb;
+ *((int *)&__m128_op0[1]) = 0x63636363;
+ *((int *)&__m128_op0[0]) = 0x63636363;
+ *((unsigned long *)&__m128d_result[1]) = 0x446c6ed0e0000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x446c62d760000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x000000ff;
+ *((int *)&__m128_op0[2]) = 0x000000ff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x371fe00000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x371fe00000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff7fff7ef;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80808080ffffffff;
+ *((int *)&__m128_result[3]) = 0xffffe000;
+ *((int *)&__m128_result[2]) = 0xffffe000;
+ *((int *)&__m128_result[1]) = 0xc6ffe000;
+ *((int *)&__m128_result[0]) = 0xc6fde000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffe0000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffe1ffc100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000400000;
+ *((int *)&__m128_result[3]) = 0xfffc2000;
+ *((int *)&__m128_result[2]) = 0xfff82000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000b3a6;
+ *((int *)&__m128_op0[2]) = 0x000067da;
+ *((int *)&__m128_op0[1]) = 0x00004e42;
+ *((int *)&__m128_op0[0]) = 0x0000c26a;
+ *((unsigned long *)&__m128d_result[1]) = 0x379674c000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x3789f68000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xffff0000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffe0000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001001001000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4195d926d8018000;
+ *((int *)&__m128_result[3]) = 0x33800000;
+ *((int *)&__m128_result[2]) = 0x35800000;
+ *((int *)&__m128_result[1]) = 0x37800000;
+ *((int *)&__m128_result[0]) = 0x37000000;
+ __m128_out = __lsx_vfcvth_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvth_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((int *)&__m128_result[3]) = 0xffffe000;
+ *((int *)&__m128_result[2]) = 0xffffe000;
+ *((int *)&__m128_result[1]) = 0xffffe000;
+ *((int *)&__m128_result[0]) = 0xffffe000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((int *)&__m128_result[3]) = 0x35200000;
+ *((int *)&__m128_result[2]) = 0x35200000;
+ *((int *)&__m128_result[1]) = 0x35200000;
+ *((int *)&__m128_result[0]) = 0x35200000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000100;
+ *((int *)&__m128_op0[2]) = 0x0f00fe00;
+ *((int *)&__m128_op0[1]) = 0x0000017f;
+ *((int *)&__m128_op0[0]) = 0xff00fe7f;
+ *((unsigned long *)&__m128d_result[1]) = 0x3727f00000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xc7e01fcfe0000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000020;
+ *((int *)&__m128_op0[0]) = 0x00000020;
+ *((unsigned long *)&__m128d_result[1]) = 0x36f0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x36f0000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xbd994889;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0a092444;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x3941248880000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf0bc9a5278285a4a;
+ *((int *)&__m128_result[3]) = 0xc6178000;
+ *((int *)&__m128_result[2]) = 0xbb4a4000;
+ *((int *)&__m128_result[1]) = 0x47050000;
+ *((int *)&__m128_result[0]) = 0x43494000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00040004;
+ *((int *)&__m128_op0[2]) = 0x00040004;
+ *((int *)&__m128_op0[1]) = 0x00040004;
+ *((int *)&__m128_op0[0]) = 0x00040004;
+ *((unsigned long *)&__m128d_result[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x37c0001000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((int *)&__m128_result[3]) = 0xffe00000;
+ *((int *)&__m128_result[2]) = 0xffe00000;
+ *((int *)&__m128_result[1]) = 0xffe00000;
+ *((int *)&__m128_result[0]) = 0xffe00000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xffffe000;
+ *((int *)&__m128_result[0]) = 0xffffe000;
+ __m128_out = __lsx_vfcvtl_s_h (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x007f7f7f;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x380fdfdfc0000000;
+ __m128d_out = __lsx_vfcvtl_d_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c
new file mode 100644
index 0000000..e8f4f12
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c
@@ -0,0 +1,278 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x004200a0;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x004200a0;
+ *((int *)&__m128_op0[0]) = 0x00200001;
+ *((int *)&__m128_op1[3]) = 0x004200a0;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x004200a0;
+ *((int *)&__m128_op1[0]) = 0x00200000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00010001;
+ *((int *)&__m128_op1[2]) = 0x0001007c;
+ *((int *)&__m128_op1[1]) = 0x00010001;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x80808080;
+ *((int *)&__m128_op1[2]) = 0x80808080;
+ *((int *)&__m128_op1[1]) = 0x80808080;
+ *((int *)&__m128_op1[0]) = 0x80808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000800080008000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xfffffffc;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffffc;
+ *((int *)&__m128_op1[3]) = 0x00000001;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000103;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfcvt_h_s (__m128_op0, __m128_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000049000000c0;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ffffff29;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000100000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ff0000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000002c002400;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7ef400ad21fc7081;
+ *((unsigned long *)&__m128d_op1[0]) = 0x28bf0351ec69b5f2;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000dc300003ffb;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000dc300003ffb;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffff3fbfffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7fffffff7fffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x7ffffffb;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xbba0c07b51230d5c;
+ *((unsigned long *)&__m128d_op0[0]) = 0xa15f3f9e8763c2b9;
+ *((unsigned long *)&__m128d_op1[1]) = 0xbba0c07b51230d5c;
+ *((unsigned long *)&__m128d_op1[0]) = 0xa15f3f9e8763c2b9;
+ *((int *)&__m128_result[3]) = 0x9d0603db;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x9d0603db;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128d_op1[1]) = 0x8101010181010101;
+ *((unsigned long *)&__m128d_op1[0]) = 0x8101010181010101;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffc00000ff800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffdfffe80008000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xffeffff4;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000090;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000090;
+ *((unsigned long *)&__m128d_op1[1]) = 0x004eff6200d2ff76;
+ *((unsigned long *)&__m128d_op1[0]) = 0xff70002800be00a0;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vfcvt_s_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-1.c
new file mode 100644
index 0000000..85db957
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-1.c
@@ -0,0 +1,161 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m128d_result[0]) = 0xbff0000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x40cd120000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x4050000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0086000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0082000000000007;
+ *((unsigned long *)&__m128d_result[1]) = 0x4160c00000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x4110000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff8000010f800000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000051649b6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000003e0000003f;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x41945926d8000000;
+ __m128d_out = __lsx_vffinth_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe82fe0200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe82fe0200000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xc177d01fe0000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128d_result[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x40f0001000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x40f3fa0000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xc0fffff000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffintl_d_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-2.c
new file mode 100644
index 0000000..f8839cf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-2.c
@@ -0,0 +1,264 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x03ff03ff03ff03ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x438ff81ff81ff820;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128d_result[1]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128d_result[0]) = 0x43d3e0000013e000;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xbff0000000000000;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0674c8868a74fc80;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfdce8003090b0906;
+ *((unsigned long *)&__m128d_result[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128d_result[0]) = 0xc3818bffe7b7a7b8;
+ __m128d_out = __lsx_vffint_d_l (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((int *)&__m128_result[3]) = 0x4b7f00ff;
+ *((int *)&__m128_result[2]) = 0x4b7f00ff;
+ *((int *)&__m128_result[1]) = 0x4b7f00ff;
+ *((int *)&__m128_result[0]) = 0x4b7f00ff;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000004;
+ *((int *)&__m128_result[3]) = 0x40800000;
+ *((int *)&__m128_result[2]) = 0x4b800000;
+ *((int *)&__m128_result[1]) = 0x47800080;
+ *((int *)&__m128_result[0]) = 0x40800000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x47000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x76f424887fffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x3f800000;
+ *((int *)&__m128_result[1]) = 0x4eede849;
+ *((int *)&__m128_result[0]) = 0x4f000000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa352bfac9269e0aa;
+ *((int *)&__m128_result[3]) = 0xce23d33d;
+ *((int *)&__m128_result[2]) = 0x4edd53ea;
+ *((int *)&__m128_result[1]) = 0xceb95a81;
+ *((int *)&__m128_result[0]) = 0xcedb2c3f;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x3f800000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003ff8;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x467fe000;
+ __m128_out = __lsx_vffint_s_w (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0xbf800000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xcf000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x5eff0000;
+ *((int *)&__m128_result[2]) = 0x5eff0000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000e3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfda9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((int *)&__m128_result[3]) = 0x43630000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xdc159371;
+ *((int *)&__m128_result[0]) = 0x4f7fff00;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000040;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x42800000;
+ *((int *)&__m128_result[0]) = 0x42800000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000100;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x43800000;
+ *((int *)&__m128_result[0]) = 0x43800000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001effae001effae;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x59f7fd70;
+ *((int *)&__m128_result[0]) = 0x59f7fd70;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000ef0000000003b;
+ *((int *)&__m128_result[3]) = 0x577fff00;
+ *((int *)&__m128_result[2]) = 0x577fff00;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x596f0000;
+ __m128_out = __lsx_vffint_s_l (__m128i_op0, __m128i_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-3.c
new file mode 100644
index 0000000..9150e27
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vffint-3.c
@@ -0,0 +1,102 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x8493941335f5cc0c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x625a7312befcb21e;
+ *((unsigned long *)&__m128d_result[1]) = 0x43e092728266beba;
+ *((unsigned long *)&__m128d_result[0]) = 0x43d8969cc4afbf2d;
+ __m128d_out = __lsx_vffint_d_lu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_lu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_lu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vffint_d_lu (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001600000016;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001600000016;
+ *((int *)&__m128_result[3]) = 0x41b00000;
+ *((int *)&__m128_result[2]) = 0x41b00000;
+ *((int *)&__m128_result[1]) = 0x41b00000;
+ *((int *)&__m128_result[0]) = 0x41b00000;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((int *)&__m128_result[3]) = 0x4f800000;
+ *((int *)&__m128_result[2]) = 0x4f800000;
+ *((int *)&__m128_result[1]) = 0x4f800000;
+ *((int *)&__m128_result[0]) = 0x4f800000;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000442800007b50;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0204;
+ *((int *)&__m128_result[3]) = 0x46885000;
+ *((int *)&__m128_result[2]) = 0x46f6a000;
+ *((int *)&__m128_result[1]) = 0x4f800000;
+ *((int *)&__m128_result[0]) = 0x4f7fff02;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vffint_s_wu (__m128i_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c
new file mode 100644
index 0000000..cc36bf1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c
@@ -0,0 +1,76 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xc090c40000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000001000000048;
+ *((unsigned long *)&__m128d_result[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128d_result[0]) = 0xc090380000000000;
+ __m128d_out = __lsx_vflogb_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c
new file mode 100644
index 0000000..6245896
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c
@@ -0,0 +1,185 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00003004;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xc3080000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x01010101;
+ *((int *)&__m128_op0[2]) = 0x01010101;
+ *((int *)&__m128_op0[1]) = 0x01010101;
+ *((int *)&__m128_op0[0]) = 0x01010101;
+ *((int *)&__m128_result[3]) = 0xc2fa0000;
+ *((int *)&__m128_result[2]) = 0xc2fa0000;
+ *((int *)&__m128_result[1]) = 0xc2fa0000;
+ *((int *)&__m128_result[0]) = 0xc2fa0000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x01ff01ff;
+ *((int *)&__m128_op0[2]) = 0x01ff01ff;
+ *((int *)&__m128_op0[1]) = 0x01ff01ff;
+ *((int *)&__m128_op0[0]) = 0x01ff01ff;
+ *((int *)&__m128_result[3]) = 0xc2f80000;
+ *((int *)&__m128_result[2]) = 0xc2f80000;
+ *((int *)&__m128_result[1]) = 0xc2f80000;
+ *((int *)&__m128_result[0]) = 0xc2f80000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xd46cdc13;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00fe00fe;
+ *((int *)&__m128_op0[2]) = 0x000200fe;
+ *((int *)&__m128_op0[1]) = 0x00fe00fe;
+ *((int *)&__m128_op0[0]) = 0x000200fe;
+ *((int *)&__m128_result[3]) = 0xc2fc0000;
+ *((int *)&__m128_result[2]) = 0xc3040000;
+ *((int *)&__m128_result[1]) = 0xc2fc0000;
+ *((int *)&__m128_result[0]) = 0xc3040000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x01010101;
+ *((int *)&__m128_op0[0]) = 0x00000100;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xc2fa0000;
+ *((int *)&__m128_result[0]) = 0xc30d0000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000014;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000014;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xc3110000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xc3110000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x4e3e1337;
+ *((int *)&__m128_op0[0]) = 0x38bb47d2;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0x41e80000;
+ *((int *)&__m128_result[0]) = 0xc1600000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00003ff8;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0xc3080000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xf1f181a2;
+ *((int *)&__m128_op0[2]) = 0xf1f1f1b0;
+ *((int *)&__m128_op0[1]) = 0xf1f1f1f1;
+ *((int *)&__m128_op0[0]) = 0xf180f1f1;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x7fc00000;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vflogb_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c
new file mode 100644
index 0000000..c5de1ac
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c
@@ -0,0 +1,251 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x8a228acac14e440a;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc77c47cdc0f16549;
+ *((unsigned long *)&__m128d_op2[1]) = 0xffffffffd24271c4;
+ *((unsigned long *)&__m128d_op2[0]) = 0x2711bad1e8e309ed;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffd24271c4;
+ *((unsigned long *)&__m128d_result[0]) = 0x2711bad1e8e309ed;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffe000ffff1fff;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000003f80b0;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128d_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0080200000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000080000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000001e;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m128d_op2[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long *)&__m128d_op2[0]) = 0xfff8000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff8000000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000009000900;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000009000900;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000009000900;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000009000900;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128d_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x9c83e21a22001818;
+ *((unsigned long *)&__m128d_op0[0]) = 0xdd3b8b02563b2d7b;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7f7f7f007f7f7f00;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x7f7f7f007f7f7f00;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff01e41ffff0ffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x5555000054100000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x5555000154100155;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vfmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000010;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128d_op2[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128d_op2[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0038d800ff000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00fffe00fffffe00;
+ *((unsigned long *)&__m128d_op2[1]) = 0x8000008000008080;
+ *((unsigned long *)&__m128d_op2[0]) = 0x8080800000800080;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000008000008080;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00ff80ff00ff80ff;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000103;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000100000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000103;
+ __m128d_out = __lsx_vfmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c
new file mode 100644
index 0000000..6b85e87
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c
@@ -0,0 +1,381 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000002;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000002;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x0028e0a1;
+ *((int *)&__m128_op0[2]) = 0xa000a041;
+ *((int *)&__m128_op0[1]) = 0x01000041;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x01000001;
+ *((int *)&__m128_op1[1]) = 0x00010001;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x01000001;
+ *((int *)&__m128_op2[1]) = 0xffffe000;
+ *((int *)&__m128_op2[0]) = 0xffff1fff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x01000001;
+ *((int *)&__m128_result[1]) = 0xffffe000;
+ *((int *)&__m128_result[0]) = 0xffff1fff;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f800000;
+ *((int *)&__m128_op0[2]) = 0x7f800000;
+ *((int *)&__m128_op0[1]) = 0x7f800000;
+ *((int *)&__m128_op0[0]) = 0x7f800000;
+ *((int *)&__m128_op1[3]) = 0x00000002;
+ *((int *)&__m128_op1[2]) = 0x00000002;
+ *((int *)&__m128_op1[1]) = 0x00000003;
+ *((int *)&__m128_op1[0]) = 0x00000003;
+ *((int *)&__m128_op2[3]) = 0x3fc00000;
+ *((int *)&__m128_op2[2]) = 0x3fc00000;
+ *((int *)&__m128_op2[1]) = 0x3fc00000;
+ *((int *)&__m128_op2[0]) = 0x3fc00000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xc1bdceee;
+ *((int *)&__m128_op0[2]) = 0x242070db;
+ *((int *)&__m128_op0[1]) = 0xe8c7b756;
+ *((int *)&__m128_op0[0]) = 0xd76aa478;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x7f400000;
+ *((int *)&__m128_op0[2]) = 0x7f040000;
+ *((int *)&__m128_op0[1]) = 0x7f020000;
+ *((int *)&__m128_op0[0]) = 0x7f020000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x0014002c;
+ *((int *)&__m128_op1[1]) = 0xfffefffe;
+ *((int *)&__m128_op1[0]) = 0x003b0013;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0x3ea5016b;
+ *((int *)&__m128_result[1]) = 0xfffefffe;
+ *((int *)&__m128_result[0]) = 0x3f6fb04d;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x004f0080;
+ *((int *)&__m128_op0[2]) = 0x004f0080;
+ *((int *)&__m128_op0[1]) = 0x004f0080;
+ *((int *)&__m128_op0[0]) = 0x004f0080;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x7fff7fff;
+ *((int *)&__m128_op2[2]) = 0x7fff7fff;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7fff7fff;
+ *((int *)&__m128_result[2]) = 0x7fff7fff;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x3d3d3d3d;
+ *((int *)&__m128_op0[2]) = 0x3d3d3d3d;
+ *((int *)&__m128_op0[1]) = 0x3d3d3d3d;
+ *((int *)&__m128_op0[0]) = 0x3d3d3d3d;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00100000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x0000bd3d;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00050005;
+ *((int *)&__m128_op1[2]) = 0x00050005;
+ *((int *)&__m128_op1[1]) = 0x00050005;
+ *((int *)&__m128_op1[0]) = 0x00050005;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xe500c085;
+ *((int *)&__m128_op0[2]) = 0xc000c005;
+ *((int *)&__m128_op0[1]) = 0xe5c1a185;
+ *((int *)&__m128_op0[0]) = 0xc48004c5;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffc000;
+ *((int *)&__m128_op1[0]) = 0xffffc005;
+ *((int *)&__m128_op2[3]) = 0xff550025;
+ *((int *)&__m128_op2[2]) = 0x002a004b;
+ *((int *)&__m128_op2[1]) = 0x00590013;
+ *((int *)&__m128_op2[0]) = 0x005cffca;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffc000;
+ *((int *)&__m128_result[0]) = 0xffffc005;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00fe0001;
+ *((int *)&__m128_op1[2]) = 0x00cf005f;
+ *((int *)&__m128_op1[1]) = 0x7fff7fff;
+ *((int *)&__m128_op1[0]) = 0x7fff7f00;
+ *((int *)&__m128_op2[3]) = 0x5d7f5d00;
+ *((int *)&__m128_op2[2]) = 0x7f6a007f;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x5d7f5d00;
+ *((int *)&__m128_result[2]) = 0x7f6a007f;
+ *((int *)&__m128_result[1]) = 0x7fff7fff;
+ *((int *)&__m128_result[0]) = 0x7fff7f00;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00680486;
+ *((int *)&__m128_op0[2]) = 0xffffffda;
+ *((int *)&__m128_op0[1]) = 0xffff913b;
+ *((int *)&__m128_op0[0]) = 0xb9951901;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x01030103;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00200060;
+ *((int *)&__m128_op2[0]) = 0x00200060;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xffffffda;
+ *((int *)&__m128_result[1]) = 0xffff913b;
+ *((int *)&__m128_result[0]) = 0x001fed4d;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x001a001a;
+ *((int *)&__m128_op0[2]) = 0x001a0008;
+ *((int *)&__m128_op0[1]) = 0x001a001a;
+ *((int *)&__m128_op0[0]) = 0x001a000b;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xff800001;
+ *((int *)&__m128_op1[0]) = 0x0f800000;
+ *((int *)&__m128_op2[3]) = 0xff800000;
+ *((int *)&__m128_op2[2]) = 0xff800000;
+ *((int *)&__m128_op2[1]) = 0xff800000;
+ *((int *)&__m128_op2[0]) = 0xff800000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffc00001;
+ *((int *)&__m128_result[0]) = 0xff800000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xfe3bfb01;
+ *((int *)&__m128_op0[2]) = 0xfe3bfe01;
+ *((int *)&__m128_op0[1]) = 0xfe03fe3f;
+ *((int *)&__m128_op0[0]) = 0xfe01fa21;
+ *((int *)&__m128_op1[3]) = 0xfe3bfb01;
+ *((int *)&__m128_op1[2]) = 0xfe3bfe01;
+ *((int *)&__m128_op1[1]) = 0xfe03fe3f;
+ *((int *)&__m128_op1[0]) = 0xfe01fa21;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffe001;
+ *((int *)&__m128_op0[2]) = 0xffffe001;
+ *((int *)&__m128_op0[1]) = 0xffffe001;
+ *((int *)&__m128_op0[0]) = 0xffffe001;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffe000;
+ *((int *)&__m128_op1[0]) = 0x01ffe200;
+ *((int *)&__m128_op2[3]) = 0x04040383;
+ *((int *)&__m128_op2[2]) = 0x83838404;
+ *((int *)&__m128_op2[1]) = 0x04040383;
+ *((int *)&__m128_op2[0]) = 0x83838404;
+ *((int *)&__m128_result[3]) = 0xffffe001;
+ *((int *)&__m128_result[2]) = 0xffffe001;
+ *((int *)&__m128_result[1]) = 0xffffe001;
+ *((int *)&__m128_result[0]) = 0xffffe001;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x18171615;
+ *((int *)&__m128_op0[2]) = 0x17161514;
+ *((int *)&__m128_op0[1]) = 0x16151413;
+ *((int *)&__m128_op0[0]) = 0x151d3756;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x39412488;
+ *((int *)&__m128_op1[0]) = 0x80000000;
+ *((int *)&__m128_op2[3]) = 0x3ff00000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x40f3fa00;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xbff00000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xc0f3fa00;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000005;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x3ddc5dac;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x63636b6a;
+ *((int *)&__m128_op0[2]) = 0xfe486741;
+ *((int *)&__m128_op0[1]) = 0x41f8e880;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xe3636363;
+ *((int *)&__m128_op1[2]) = 0x63abdf16;
+ *((int *)&__m128_op1[1]) = 0x41f8e080;
+ *((int *)&__m128_op1[0]) = 0x16161198;
+ *((int *)&__m128_op2[3]) = 0x00c27580;
+ *((int *)&__m128_op2[2]) = 0x00bccf42;
+ *((int *)&__m128_op2[1]) = 0x00a975be;
+ *((int *)&__m128_op2[0]) = 0x00accf03;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0xff800000;
+ *((int *)&__m128_result[1]) = 0x4471fb84;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c
new file mode 100644
index 0000000..442473f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c
@@ -0,0 +1,200 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m128d_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128d_result[0]) = 0x0400040004000400;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m128d_result[0]) = 0x01ff01ff01ff01ff;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128d_result[0]) = 0xfffcfffcfffcfffc;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x000000000000ffff;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128d_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfdfef9ff0efff900;
+ *((unsigned long *)&__m128d_result[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128d_result[0]) = 0x6363636363636363;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128d_op0[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128d_result[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128d_result[0]) = 0x377b810912c0e000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128d_op0[0]) = 0xc3818bffe7b7a7b8;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x17c64aaef639f093;
+ *((unsigned long *)&__m128d_op0[0]) = 0xdb8f439722ec502d;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x17c64aaef639f093;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128d_result[0]) = 0x00000000ff800000;
+ __m128d_out = __lsx_vfmax_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000c000ffffc000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000958affff995d;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmin_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c
new file mode 100644
index 0000000..8765888
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c
@@ -0,0 +1,335 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x0000ffff;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x0000ffff;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xc2409eda;
+ *((int *)&__m128_op1[2]) = 0xb019323f;
+ *((int *)&__m128_op1[1]) = 0x460f3b39;
+ *((int *)&__m128_op1[0]) = 0x3ef4be3a;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x460f3b39;
+ *((int *)&__m128_result[0]) = 0x3ef4be3a;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000001;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000001;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xfefd7f7f;
+ *((int *)&__m128_op1[2]) = 0x7f7f7f7e;
+ *((int *)&__m128_op1[1]) = 0xdffdbffe;
+ *((int *)&__m128_op1[0]) = 0xba6f5543;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x7f7f7f7e;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xff84fff4;
+ *((int *)&__m128_op0[2]) = 0xff84fff4;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff0;
+ *((int *)&__m128_op1[3]) = 0xff84fff4;
+ *((int *)&__m128_op1[2]) = 0xff84fff4;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xfffffff0;
+ *((int *)&__m128_result[3]) = 0xffc4fff4;
+ *((int *)&__m128_result[2]) = 0xffc4fff4;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xfffffff0;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00007fff;
+ *((int *)&__m128_op1[2]) = 0x00007fff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00007fff;
+ *((int *)&__m128_result[2]) = 0x00007fff;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000001;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x01010001;
+ *((int *)&__m128_op0[0]) = 0x01010001;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00020000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00020000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00020000;
+ *((int *)&__m128_result[1]) = 0x01010001;
+ *((int *)&__m128_result[0]) = 0x01010001;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000020;
+ *((int *)&__m128_op1[2]) = 0x00000020;
+ *((int *)&__m128_op1[1]) = 0x0000001f;
+ *((int *)&__m128_op1[0]) = 0x0000001f;
+ *((int *)&__m128_result[3]) = 0x00000020;
+ *((int *)&__m128_result[2]) = 0x00000020;
+ *((int *)&__m128_result[1]) = 0x0000001f;
+ *((int *)&__m128_result[0]) = 0x0000001f;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xf3040705;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xf3040705;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xf3040705;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000004;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000004;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000004;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000004;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000004;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000004;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmax_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000ffff;
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
+ *((int *)&__m128_op0[1]) = 0x0000ffff;
+ *((int *)&__m128_op0[0]) = 0x0000fffe;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffe5;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffe5;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x13121110;
+ *((int *)&__m128_op0[2]) = 0x1211100f;
+ *((int *)&__m128_op0[1]) = 0x11100f0e;
+ *((int *)&__m128_op0[0]) = 0x100f0e0d;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff3;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000008;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000088;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000008;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000088;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x52525252;
+ *((int *)&__m128_op0[2]) = 0xadadadad;
+ *((int *)&__m128_op0[1]) = 0x52525252;
+ *((int *)&__m128_op0[0]) = 0xadadadad;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xadadadad;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0xadadadad;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x0000ffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x0000ffff;
+ __m128_out = __lsx_vfmin_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c
new file mode 100644
index 0000000..c2766d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c
@@ -0,0 +1,155 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000800000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128d_op0[0]) = 0x3918371635143312;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000af555555555;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000af555555555;
+ *((unsigned long *)&__m128d_result[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128d_result[0]) = 0x3918371635143312;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000010000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x10f8000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfff8ffa2fffdffb0;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128d_result[1]) = 0x10f8000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x00000000ff800000;
+ __m128d_out = __lsx_vfmaxa_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x80000000fff6fc00;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000080000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000158;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfffe0004fffe0004;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x002a001a001a000b;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x002a001a001a000b;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfmina_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c
new file mode 100644
index 0000000..5fcdedd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c
@@ -0,0 +1,230 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xf436f3f5;
+ *((int *)&__m128_op0[0]) = 0x2f4ef4a8;
+ *((int *)&__m128_op1[3]) = 0xff800000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0xff800000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xff800000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xff800000;
+ *((int *)&__m128_result[0]) = 0x2f4ef4a8;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000800;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000800;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000800;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000800;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xc0c0c000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00800080;
+ *((int *)&__m128_op1[2]) = 0x00800080;
+ *((int *)&__m128_op1[1]) = 0x0080006b;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00800080;
+ *((int *)&__m128_result[2]) = 0xc0c0c000;
+ *((int *)&__m128_result[1]) = 0x0080006b;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x80000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x80000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmaxa_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xffffffff;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0xffffffff;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0xff01ff01;
+ *((int *)&__m128_op1[2]) = 0x0000ff7d;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x0000fffc;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xdfa6e0c6;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xd46cdc13;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x01010101;
+ *((int *)&__m128_op0[2]) = 0x01010101;
+ *((int *)&__m128_op0[1]) = 0x010101fe;
+ *((int *)&__m128_op0[0]) = 0x0101fe87;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0xffff0000;
+ *((int *)&__m128_op1[2]) = 0xffff0000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfmina_s (__m128_op0, __m128_op1);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c
new file mode 100644
index 0000000..96b14aa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c
@@ -0,0 +1,196 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0xef0179a47c793879;
+ *((unsigned long *)&__m128d_op0[0]) = 0x9f9e7e3e9ea3ff41;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffc000007fc00000;
+ *((unsigned long *)&__m128d_result[0]) = 0x9e801ffc7fc00000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000ffff00000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000ffff00000000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000008800022;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128d_op2[1]) = 0xb8ec43befe38e64b;
+ *((unsigned long *)&__m128d_op2[0]) = 0x6477d042343cce24;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffbfffffffbf;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000060000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfffffffffffff000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffafffffffa;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffafffffffa;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m128d_op1[0]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff80ffa2fff0ff74;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff76ffd8ffe6ffaa;
+ *((unsigned long *)&__m128d_op1[1]) = 0xff80ffa2fff0ff74;
+ *((unsigned long *)&__m128d_op1[0]) = 0xff76ffd8ffe6ffaa;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0303030303030303;
+ *((unsigned long *)&__m128d_result[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfff0000000000000;
+ __m128d_out = __lsx_vfnmadd_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128d_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfffffffffffffffe;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x00000000b5207f80;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000009000900;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000009000900;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op2[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x00000000ffffffff;
+ __m128d_out = __lsx_vfnmsub_d (__m128d_op0, __m128d_op1, __m128d_op2);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c
new file mode 100644
index 0000000..bf8414b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c
@@ -0,0 +1,381 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xfffffffe;
+ *((int *)&__m128_op0[0]) = 0xbe6ed565;
+ *((int *)&__m128_op1[3]) = 0x195f307a;
+ *((int *)&__m128_op1[2]) = 0x5d04acbb;
+ *((int *)&__m128_op1[1]) = 0x6a1a3fbb;
+ *((int *)&__m128_op1[0]) = 0x3c90260e;
+ *((int *)&__m128_op2[3]) = 0xffffffff;
+ *((int *)&__m128_op2[2]) = 0xffffffff;
+ *((int *)&__m128_op2[1]) = 0xfffffffe;
+ *((int *)&__m128_op2[0]) = 0xbe6ed565;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xfffffffe;
+ *((int *)&__m128_result[0]) = 0x3e730941;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xff01ff01;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0xffffffff;
+ *((int *)&__m128_op2[2]) = 0xffffffff;
+ *((int *)&__m128_op2[1]) = 0xffffffff;
+ *((int *)&__m128_op2[0]) = 0xff01ff01;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0x7f01ff01;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0xffffffff;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0xffffffff;
+ *((int *)&__m128_op2[3]) = 0x00307028;
+ *((int *)&__m128_op2[2]) = 0x003f80b0;
+ *((int *)&__m128_op2[1]) = 0x0040007f;
+ *((int *)&__m128_op2[0]) = 0xff800000;
+ *((int *)&__m128_result[3]) = 0x80307028;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0x8040007f;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000049;
+ *((int *)&__m128_op0[2]) = 0x0000004d;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000001;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000001;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000001;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffff0000;
+ *((int *)&__m128_op0[1]) = 0x00ff0000;
+ *((int *)&__m128_op0[0]) = 0x00ff0000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000800;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0xffffffff;
+ *((int *)&__m128_op2[2]) = 0xfffff800;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xfffff800;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00030000;
+ *((int *)&__m128_op0[2]) = 0x00010000;
+ *((int *)&__m128_op0[1]) = 0x00020000;
+ *((int *)&__m128_op0[0]) = 0x00010000;
+ *((int *)&__m128_op1[3]) = 0x3f800000;
+ *((int *)&__m128_op1[2]) = 0x3f800000;
+ *((int *)&__m128_op1[1]) = 0x3f800000;
+ *((int *)&__m128_op1[0]) = 0x3f800000;
+ *((int *)&__m128_op2[3]) = 0x00030000;
+ *((int *)&__m128_op2[2]) = 0x00010000;
+ *((int *)&__m128_op2[1]) = 0x00020000;
+ *((int *)&__m128_op2[0]) = 0x00010000;
+ *((int *)&__m128_result[3]) = 0x80060000;
+ *((int *)&__m128_result[2]) = 0x80020000;
+ *((int *)&__m128_result[1]) = 0x80040000;
+ *((int *)&__m128_result[0]) = 0x80020000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000008;
+ *((int *)&__m128_op0[2]) = 0x97957687;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000408;
+ *((int *)&__m128_op1[3]) = 0x00000008;
+ *((int *)&__m128_op1[2]) = 0x97957687;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000408;
+ *((int *)&__m128_op2[3]) = 0x00010001;
+ *((int *)&__m128_op2[2]) = 0x00010001;
+ *((int *)&__m128_op2[1]) = 0x00010001;
+ *((int *)&__m128_op2[0]) = 0x04000800;
+ *((int *)&__m128_result[3]) = 0x80010001;
+ *((int *)&__m128_result[2]) = 0x80010001;
+ *((int *)&__m128_result[1]) = 0x80010001;
+ *((int *)&__m128_result[0]) = 0x84000800;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffc2ffe7;
+ *((int *)&__m128_op0[2]) = 0x00000007;
+ *((int *)&__m128_op0[1]) = 0x0000ffc1;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((int *)&__m128_op1[3]) = 0xffc2ffe7;
+ *((int *)&__m128_op1[2]) = 0x00000007;
+ *((int *)&__m128_op1[1]) = 0x0000ffc1;
+ *((int *)&__m128_op1[0]) = 0x00010001;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x000ffc2f;
+ *((int *)&__m128_op2[1]) = 0x00201df0;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0xffc2ffe7;
+ *((int *)&__m128_result[2]) = 0x800ffc2f;
+ *((int *)&__m128_result[1]) = 0x80201df0;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000005;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x80808080;
+ *((int *)&__m128_op0[2]) = 0x80808080;
+ *((int *)&__m128_op0[1]) = 0x80808080;
+ *((int *)&__m128_op0[0]) = 0x80800008;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x31313131;
+ *((int *)&__m128_op0[0]) = 0x31313131;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x31313131;
+ *((int *)&__m128_op1[0]) = 0x31313131;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000008;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000008;
+ *((int *)&__m128_result[1]) = 0xa2f54a1e;
+ *((int *)&__m128_result[0]) = 0xa2f54a1e;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmadd_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xa486c90f;
+ *((int *)&__m128_op0[2]) = 0x157ca12e;
+ *((int *)&__m128_op0[1]) = 0x58bcc201;
+ *((int *)&__m128_op0[0]) = 0x2e635d65;
+ *((int *)&__m128_op1[3]) = 0x6d564875;
+ *((int *)&__m128_op1[2]) = 0xf8760005;
+ *((int *)&__m128_op1[1]) = 0x8dc5a4d1;
+ *((int *)&__m128_op1[0]) = 0x79ffa22f;
+ *((int *)&__m128_op2[3]) = 0xffffffff;
+ *((int *)&__m128_op2[2]) = 0xd2436487;
+ *((int *)&__m128_op2[1]) = 0x0fa96b88;
+ *((int *)&__m128_op2[0]) = 0x5f94ab13;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xd24271c4;
+ *((int *)&__m128_result[1]) = 0x2711bad1;
+ *((int *)&__m128_result[0]) = 0xe8e309ed;
+ __m128_out = __lsx_vfnmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x00000000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x80000000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x007ffd00;
+ *((int *)&__m128_op2[0]) = 0x01400840;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x007ffd00;
+ *((int *)&__m128_result[0]) = 0x01400840;
+ __m128_out = __lsx_vfnmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0x00000000;
+ *((int *)&__m128_op2[2]) = 0x00000000;
+ *((int *)&__m128_op2[1]) = 0x7f800000;
+ *((int *)&__m128_op2[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x80000000;
+ *((int *)&__m128_result[2]) = 0x80000000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x80000000;
+ __m128_out = __lsx_vfnmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_op1[3]) = 0x00000000;
+ *((int *)&__m128_op1[2]) = 0x00000000;
+ *((int *)&__m128_op1[1]) = 0x00000000;
+ *((int *)&__m128_op1[0]) = 0x00000000;
+ *((int *)&__m128_op2[3]) = 0xcd636363;
+ *((int *)&__m128_op2[2]) = 0xcd636363;
+ *((int *)&__m128_op2[1]) = 0xcd636363;
+ *((int *)&__m128_op2[0]) = 0xcd636363;
+ *((int *)&__m128_result[3]) = 0xcd636363;
+ *((int *)&__m128_result[2]) = 0xcd636363;
+ *((int *)&__m128_result[1]) = 0xcd636363;
+ *((int *)&__m128_result[0]) = 0xcd636363;
+ __m128_out = __lsx_vfnmsub_s (__m128_op0, __m128_op1, __m128_op2);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c
new file mode 100644
index 0000000..c60ff2b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c
@@ -0,0 +1,230 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0003000300030003;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0003000700020005;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00ff000100ff00fe;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff003000ff00a0;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfd200ed2fd370775;
+ *((unsigned long *)&__m128d_op0[0]) = 0x96198318780e32c5;
+ *((unsigned long *)&__m128d_result[1]) = 0xfd200ed2fd370775;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfrint_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrne_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128d_op0[0]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128d_result[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128d_result[0]) = 0xe0404041e0404041;
+ __m128d_out = __lsx_vfrintrne_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrne_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfrintrne_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000868686868686;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrne_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffc002000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0xfffc002000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x9c9c9c9c00000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000007f00ff00ff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128d_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x3ff0000000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000077af9450;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x3ff0000000000000;
+ __m128d_out = __lsx_vfrintrp_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ffffff02fff4;
+ *((unsigned long *)&__m128d_result[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x6a57a30ff0000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x6a57a30ff0000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff02000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x1f81e3779b97f4a8;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffff02000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrm_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x98ff98ff220e220d;
+ *((unsigned long *)&__m128d_op0[0]) = 0xa2e1a2601ff01ff0;
+ *((unsigned long *)&__m128d_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x8000000000000000;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000abba7980;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000ccf98000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128d_result[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128d_result[0]) = 0xfe03fe3ffe01fa21;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x5847b72626ce61ef;
+ *((unsigned long *)&__m128d_op0[0]) = 0x110053f401e7cced;
+ *((unsigned long *)&__m128d_result[1]) = 0x5847b72626ce61ef;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfrintrz_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c
new file mode 100644
index 0000000..12cb023
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c
@@ -0,0 +1,350 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+/* { dg-timeout 500 } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00100010;
+ *((int *)&__m128_op0[2]) = 0x00030000;
+ *((int *)&__m128_op0[1]) = 0x00060002;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrint_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrint_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0xca02f854;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0x00013fa0;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xca02f854;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrint_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x000000ad;
+ *((int *)&__m128_op0[2]) = 0x00007081;
+ *((int *)&__m128_op0[1]) = 0x00000351;
+ *((int *)&__m128_op0[0]) = 0x0000b5f2;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrint_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00ff00ef;
+ *((int *)&__m128_op0[2]) = 0x00ff010f;
+ *((int *)&__m128_op0[1]) = 0x00ff00ff;
+ *((int *)&__m128_op0[0]) = 0x00ff010f;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrint_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00130013;
+ *((int *)&__m128_op0[2]) = 0x00130013;
+ *((int *)&__m128_op0[1]) = 0x00130013;
+ *((int *)&__m128_op0[0]) = 0x00130013;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x20202020;
+ *((int *)&__m128_op0[2]) = 0x20202020;
+ *((int *)&__m128_op0[1]) = 0x20202020;
+ *((int *)&__m128_op0[0]) = 0x20207fff;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x01f50000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00020004;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffbfffb;
+ *((int *)&__m128_op0[2]) = 0xfffbfffb;
+ *((int *)&__m128_op0[1]) = 0xfffbfffb;
+ *((int *)&__m128_op0[0]) = 0xfffbfffb;
+ *((int *)&__m128_result[3]) = 0xfffbfffb;
+ *((int *)&__m128_result[2]) = 0xfffbfffb;
+ *((int *)&__m128_result[1]) = 0xfffbfffb;
+ *((int *)&__m128_result[0]) = 0xfffbfffb;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x0ff780a1;
+ *((int *)&__m128_op0[2]) = 0x0efc01af;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xfe7f0000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0xfe7f0000;
+ __m128_out = __lsx_vfrintrne_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xefffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0xefffffff;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffff00;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffff00;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffff00;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffff00;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffb96b;
+ *((int *)&__m128_op0[2]) = 0xffff57c9;
+ *((int *)&__m128_op0[1]) = 0xffff6080;
+ *((int *)&__m128_op0[0]) = 0xffff4417;
+ *((int *)&__m128_result[3]) = 0xffffb96b;
+ *((int *)&__m128_result[2]) = 0xffff57c9;
+ *((int *)&__m128_result[1]) = 0xffff6080;
+ *((int *)&__m128_result[0]) = 0xffff4417;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00ff00ff;
+ *((int *)&__m128_op0[2]) = 0x00ff00ff;
+ *((int *)&__m128_op0[1]) = 0x62cbf96e;
+ *((int *)&__m128_op0[0]) = 0x4acfaf40;
+ *((int *)&__m128_result[3]) = 0x3f800000;
+ *((int *)&__m128_result[2]) = 0x3f800000;
+ *((int *)&__m128_result[1]) = 0x62cbf96e;
+ *((int *)&__m128_result[0]) = 0x4acfaf40;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00002000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x1fe02000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x3f800000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x3f800000;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x63636363;
+ *((int *)&__m128_op0[2]) = 0x63abdf16;
+ *((int *)&__m128_op0[1]) = 0x41f8e080;
+ *((int *)&__m128_op0[0]) = 0x16161198;
+ *((int *)&__m128_result[3]) = 0x63636363;
+ *((int *)&__m128_result[2]) = 0x63abdf16;
+ *((int *)&__m128_result[1]) = 0x42000000;
+ *((int *)&__m128_result[0]) = 0x3f800000;
+ __m128_out = __lsx_vfrintrp_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrm_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xa5c4c774;
+ *((int *)&__m128_op0[2]) = 0x856ba83b;
+ *((int *)&__m128_op0[1]) = 0x8003caef;
+ *((int *)&__m128_op0[0]) = 0x54691124;
+ *((int *)&__m128_result[3]) = 0xbf800000;
+ *((int *)&__m128_result[2]) = 0xbf800000;
+ *((int *)&__m128_result[1]) = 0xbf800000;
+ *((int *)&__m128_result[0]) = 0x54691124;
+ __m128_out = __lsx_vfrintrm_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00010002;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xff960015;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffd60015;
+ __m128_out = __lsx_vfrintrm_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x3c992b2e;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffff730f;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffff730f;
+ __m128_out = __lsx_vfrintrz_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000016;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrz_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x18171615;
+ *((int *)&__m128_op0[2]) = 0x17161514;
+ *((int *)&__m128_op0[1]) = 0x16151413;
+ *((int *)&__m128_op0[0]) = 0x15141312;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrz_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x62cbf96e;
+ *((int *)&__m128_op0[2]) = 0x4acfaf40;
+ *((int *)&__m128_op0[1]) = 0xf0bc9a52;
+ *((int *)&__m128_op0[0]) = 0x78285a4a;
+ *((int *)&__m128_result[3]) = 0x62cbf96e;
+ *((int *)&__m128_result[2]) = 0x4acfaf40;
+ *((int *)&__m128_result[1]) = 0xf0bc9a52;
+ *((int *)&__m128_result[0]) = 0x78285a4a;
+ __m128_out = __lsx_vfrintrz_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfrintrz_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstp.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstp.c
new file mode 100644
index 0000000..ac0ade8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstp.c
@@ -0,0 +1,218 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xfe07e5fefefdddfe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020100fedd0c00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0005000501800005;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe07e5fefefdddfe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00020100fedd0008;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op2[1]) = 0x03ff03ff03ff03ff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0e7ffffc01fffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000003f803f4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0e7ffffc01fffffc;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000003f803f4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0e7ffffc01fffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001003f803f4;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000020000007d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000746400016388;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000586100015567;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0800000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000020000007d;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0008;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x61608654a2d4f6da;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ff08ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x36fbdfdcffdcffdc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_op2[1]) = 0x1f1f1f1f1f1f1f00;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1f1f1f27332b9f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x36fbdfdcffdc0008;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000aaaa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000545cab1d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000081a83bea;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00d3007c014e00bd;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000aaaa;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000003a0000003a;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x37c0001000000008;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080800008;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00081f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f1f1f1f1f1f1f1f;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000400080003fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bc2000007e10;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000400080003fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000bc2000007e04;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a753500950fa306;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff14eb54ab;
+ *((unsigned long *)&__m128i_op1[0]) = 0x14ea6a002a406a00;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a753500950fa306;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_result[0]) = 0x27b169bbb8140001;
+ __m128i_out = __lsx_vfrstp_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000155;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff100000000000;
+ __m128i_out = __lsx_vfrstp_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c
new file mode 100644
index 0000000..a2b110f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c
@@ -0,0 +1,209 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0027002a00030018;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f4300177f7a7f59;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0027002a00080018;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f4300177f7a7f59;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000007f00000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000110000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000007f00000004;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000800000000;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x75b043c4d17db125;
+ *((unsigned long *)&__m128i_op0[0]) = 0xeef8227b4f8017b1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x75b043c4007db125;
+ *((unsigned long *)&__m128i_result[0]) = 0xeef8227b4f8017b1;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03c0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03c0038000000380;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff000000ff00;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000010a000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ffff000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000010a000b;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5b35342c979955da;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m128i_result[0]) = 0x5b35342c970455da;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000000000000;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00d3012b015700bb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001002affca0070;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00d3012b015700bb;
+ *((unsigned long *)&__m128i_result[0]) = 0x00010000ffca0070;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000bf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000002bb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00080000fffe0001;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000545cffffab1d;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff81a800003bea;
+ *((unsigned long *)&__m128i_op1[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_op1[0]) = 0x545cab1d81a83bea;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000545cffff0001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff81a800003bea;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001b;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000000000000;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x379674c000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x379674c000000000;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001a001a001a000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001a001a001a000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001a001a001a000b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001a001a001a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a001a001a0008;
+ *((unsigned long *)&__m128i_result[0]) = 0x001a001a001a000b;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x02f3030303030303;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x02f3030303100303;
+ __m128i_out = __lsx_vfrstpi_b (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007770ffff941d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007770ffff941d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007770ffff941d;
+ __m128i_out = __lsx_vfrstpi_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c
new file mode 100644
index 0000000..8a35dfe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c
@@ -0,0 +1,216 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0xffffffffa486c90f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000058bcc201;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffa486c90f;
+ *((unsigned long *)&__m128d_result[0]) = 0x1f52d710bf295626;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffff01ff01;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000be00be;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x1f1b917c9f3d5e05;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x0000000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x1f81e3779b97f4a8;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128d_op0[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128d_result[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128d_result[0]) = 0x2006454690d3de87;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128d_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128d_result[1]) = 0x5ff6a0a40ea8f47c;
+ *((unsigned long *)&__m128d_result[0]) = 0x5ff6a0a40e9da42a;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x61608654a2d4f6da;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128d_result[1]) = 0x5f675e96e29a5a60;
+ *((unsigned long *)&__m128d_result[0]) = 0x7fff7fff7fff7fff;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrsqrt_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff8000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_result[0]) = 0xffffffffffffffff;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000fffa0000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000fffa0000;
+ *((unsigned long *)&__m128d_result[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128d_result[0]) = 0x7ff0000000000000;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xe593c8c4e593c8c4;
+ *((unsigned long *)&__m128d_result[1]) = 0x805ffffe01001fe0;
+ *((unsigned long *)&__m128d_result[0]) = 0x9a49e11102834d70;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128d_op0[0]) = 0x5252dcdcdcdcdcdc;
+ *((unsigned long *)&__m128d_result[1]) = 0x2d8bf1f8fc7e3f20;
+ *((unsigned long *)&__m128d_result[0]) = 0x2d8b24b936d1b24d;
+ __m128d_out = __lsx_vfrecip_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128d_result, __m128d_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c
new file mode 100644
index 0000000..ffd8054
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c
@@ -0,0 +1,372 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0xfe07e5fe;
+ *((int *)&__m128_op0[2]) = 0xfefdddfe;
+ *((int *)&__m128_op0[1]) = 0x00020100;
+ *((int *)&__m128_op0[0]) = 0xfedd0c00;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x1e801ffc;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xff00ff00;
+ *((int *)&__m128_op0[2]) = 0xff00ff00;
+ *((int *)&__m128_op0[1]) = 0xff00ff00;
+ *((int *)&__m128_op0[0]) = 0xff00ff00;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x7fc00000;
+ *((int *)&__m128_result[1]) = 0x7fc00000;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x8c7fc73a;
+ *((int *)&__m128_op0[2]) = 0x137e54af;
+ *((int *)&__m128_op0[1]) = 0xbc84cf6f;
+ *((int *)&__m128_op0[0]) = 0x76208329;
+ *((int *)&__m128_result[3]) = 0x7fc00000;
+ *((int *)&__m128_result[2]) = 0x297f29fe;
+ *((int *)&__m128_result[1]) = 0x7fc00000;
+ *((int *)&__m128_result[0]) = 0x5acab5a5;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffff9727;
+ *((int *)&__m128_op0[2]) = 0xffff9727;
+ *((int *)&__m128_op0[1]) = 0xfffffe79;
+ *((int *)&__m128_op0[0]) = 0xffffba5f;
+ *((int *)&__m128_result[3]) = 0xffff9727;
+ *((int *)&__m128_result[2]) = 0xffff9727;
+ *((int *)&__m128_result[1]) = 0xfffffe79;
+ *((int *)&__m128_result[0]) = 0xffffba5f;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x00000000;
+ *((int *)&__m128_result[2]) = 0x00000000;
+ *((int *)&__m128_result[1]) = 0x00000000;
+ *((int *)&__m128_result[0]) = 0x00000000;
+ __m128_out = __lsx_vfsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xfff8fff8;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0xfff80000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0xfff8fff8;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0xfff80000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0xffffffff;
+ *((int *)&__m128_result[0]) = 0xffffffff;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x1f1b917c;
+ *((int *)&__m128_op0[0]) = 0x9f3d5e05;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x4fa432d6;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x12835580;
+ *((int *)&__m128_op0[0]) = 0xb880eb98;
+ *((int *)&__m128_result[3]) = 0xffffffff;
+ *((int *)&__m128_result[2]) = 0xffffffff;
+ *((int *)&__m128_result[1]) = 0x55fcbad1;
+ *((int *)&__m128_result[0]) = 0x7fc00000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x06070607;
+ *((int *)&__m128_op0[2]) = 0x00000807;
+ *((int *)&__m128_op0[1]) = 0x0707f8f8;
+ *((int *)&__m128_op0[0]) = 0x03e8157e;
+ *((int *)&__m128_result[3]) = 0x5c303f97;
+ *((int *)&__m128_result[2]) = 0x61ff9049;
+ *((int *)&__m128_result[1]) = 0x5bafa1dd;
+ *((int *)&__m128_result[0]) = 0x5d3e1e1d;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xfff7fffe;
+ *((int *)&__m128_op0[2]) = 0xfffa01ff;
+ *((int *)&__m128_op0[1]) = 0xfffbfffe;
+ *((int *)&__m128_op0[0]) = 0xfffe01ff;
+ *((int *)&__m128_result[3]) = 0xfff7fffe;
+ *((int *)&__m128_result[2]) = 0xfffa01ff;
+ *((int *)&__m128_result[1]) = 0xfffbfffe;
+ *((int *)&__m128_result[0]) = 0xfffe01ff;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x45000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x44000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x3cb504f3;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x3d3504f3;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00020001;
+ *((int *)&__m128_op0[0]) = 0x00020002;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x607fffc0;
+ *((int *)&__m128_result[0]) = 0x607fff80;
+ __m128_out = __lsx_vfrsqrt_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000002;
+ *((int *)&__m128_op0[2]) = 0x00000002;
+ *((int *)&__m128_op0[1]) = 0x00000003;
+ *((int *)&__m128_op0[0]) = 0x00000003;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xf6e91c00;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x51cfd7c0;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x880c91b8;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x2d1da85b;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffffffa;
+ *((int *)&__m128_op0[2]) = 0xfffffffa;
+ *((int *)&__m128_op0[1]) = 0xfffffffa;
+ *((int *)&__m128_op0[0]) = 0xfffffffa;
+ *((int *)&__m128_result[3]) = 0xfffffffa;
+ *((int *)&__m128_result[2]) = 0xfffffffa;
+ *((int *)&__m128_result[1]) = 0xfffffffa;
+ *((int *)&__m128_result[0]) = 0xfffffffa;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0xffff0001;
+ *((int *)&__m128_op0[2]) = 0xffff0001;
+ *((int *)&__m128_op0[1]) = 0xffff0001;
+ *((int *)&__m128_op0[0]) = 0xffff0001;
+ *((int *)&__m128_result[3]) = 0xffff0001;
+ *((int *)&__m128_result[2]) = 0xffff0001;
+ *((int *)&__m128_result[1]) = 0xffff0001;
+ *((int *)&__m128_result[0]) = 0xffff0001;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x0a000000;
+ *((int *)&__m128_op0[2]) = 0x0a000000;
+ *((int *)&__m128_op0[1]) = 0x0a000000;
+ *((int *)&__m128_op0[0]) = 0x0a000000;
+ *((int *)&__m128_result[3]) = 0x75000000;
+ *((int *)&__m128_result[2]) = 0x75000000;
+ *((int *)&__m128_result[1]) = 0x75000000;
+ *((int *)&__m128_result[0]) = 0x75000000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((int *)&__m128_result[3]) = 0x7f800000;
+ *((int *)&__m128_result[2]) = 0x7f800000;
+ *((int *)&__m128_result[1]) = 0x7f800000;
+ *((int *)&__m128_result[0]) = 0x7f800000;
+ __m128_out = __lsx_vfrecip_s (__m128_op0);
+ ASSERTEQ_32 (__LINE__, __m128_result, __m128_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-1.c
new file mode 100644
index 0000000..8d0d566
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-1.c
@@ -0,0 +1,349 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x004f1fcfd01f9f9f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x9f4fcfcfcf800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x9c7c266e3faa293c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000015d926c7;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000e41b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000777777777777;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff7777ffff7777;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000004000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xff80ffffffffff80;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000ff80ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xbff0000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xc0f3fa0080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffec060;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_l_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-2.c
new file mode 100644
index 0000000..5dba807
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-2.c
@@ -0,0 +1,695 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00d4ccb8;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00124888;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfff00000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfff00000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x80000000;
+ *((int *)&__m128_op0[2]) = 0xffffd860;
+ *((int *)&__m128_op0[1]) = 0x7fffffff;
+ *((int *)&__m128_op0[0]) = 0x80000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00008000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00008000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff80ffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7ffffffe;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x4f804f80;
+ *((int *)&__m128_op0[0]) = 0x4f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0000007b;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000600;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x3f800000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x04870ba0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00009c7c;
+ *((int *)&__m128_op0[0]) = 0x00007176;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0667ae56;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftinth_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x887c8beb;
+ *((int *)&__m128_op0[2]) = 0x969e00f2;
+ *((int *)&__m128_op0[1]) = 0x101f8b68;
+ *((int *)&__m128_op0[0]) = 0x0b6f8095;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00020000;
+ *((int *)&__m128_op0[2]) = 0x00020000;
+ *((int *)&__m128_op0[1]) = 0x000001fc;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00020000;
+ *((int *)&__m128_op0[0]) = 0xffff0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0a752a55;
+ *((int *)&__m128_op0[1]) = 0x0a753500;
+ *((int *)&__m128_op0[0]) = 0xa9fa0d06;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrnel_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7fffffff;
+ *((int *)&__m128_op0[2]) = 0x7fffffff;
+ *((int *)&__m128_op0[1]) = 0x7fffffff;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x000d0254;
+ *((int *)&__m128_op0[2]) = 0x0000007e;
+ *((int *)&__m128_op0[1]) = 0x00000014;
+ *((int *)&__m128_op0[0]) = 0x00140014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x39412488;
+ *((int *)&__m128_op0[0]) = 0x80000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000014;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010001;
+ *((int *)&__m128_op0[2]) = 0x00010001;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x2e34594c;
+ *((int *)&__m128_op0[0]) = 0x3b000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrpl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7ffffffe;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010001;
+ *((int *)&__m128_op0[2]) = 0x00010001;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x7ff000ff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrml_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00ff00ff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffefffe;
+ *((int *)&__m128_op0[2]) = 0xfffeffff;
+ *((int *)&__m128_op0[1]) = 0xfffefffe;
+ *((int *)&__m128_op0[0]) = 0xfffeffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000033a;
+ *((int *)&__m128_op0[2]) = 0x0bde0853;
+ *((int *)&__m128_op0[1]) = 0x0a960e6b;
+ *((int *)&__m128_op0[0]) = 0x0a4f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzl_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7ffffffe;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfffffffe;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0x7ffeffff;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0x7ffeffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrneh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x80808080;
+ *((int *)&__m128_op0[0]) = 0x80638063;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrph_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrph_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000080;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrph_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrph_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x80000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrmh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrmh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00ff00ff;
+ *((int *)&__m128_op0[2]) = 0x00ff00ff;
+ *((int *)&__m128_op0[1]) = 0x62cbf96e;
+ *((int *)&__m128_op0[0]) = 0x4acfaf40;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrmh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x0000ac26;
+ *((int *)&__m128_op0[1]) = 0x00ff0000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrmh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x6420e020;
+ *((int *)&__m128_op0[2]) = 0x8400c4e3;
+ *((int *)&__m128_op0[1]) = 0x20c4e0c4;
+ *((int *)&__m128_op0[0]) = 0xe0da6499;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfbffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7bffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x18171615;
+ *((int *)&__m128_op0[2]) = 0x17161514;
+ *((int *)&__m128_op0[1]) = 0x16151413;
+ *((int *)&__m128_op0[0]) = 0x15141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x046a09ec;
+ *((int *)&__m128_op0[0]) = 0x009c0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x4f4f4f4f;
+ *((int *)&__m128_op0[2]) = 0x4f4f4f4f;
+ *((int *)&__m128_op0[1]) = 0x4f4f4f4f;
+ *((int *)&__m128_op0[0]) = 0x4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000cf4f4f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000cf4f4f00;
+ __m128i_out = __lsx_vftintrzh_l_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-3.c
new file mode 100644
index 0000000..7f6d2f4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-3.c
@@ -0,0 +1,1028 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128d_op1[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000ffff;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x0000ffff;
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0xfffffffe;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0xfffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00040100;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffff00000080;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0xfffffffe;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0xfffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000e0180000e810;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000f0080000f800;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000e0180000e810;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000f0080000f800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffd30000;
+ *((int *)&__m128_op0[2]) = 0x00130000;
+ *((int *)&__m128_op0[1]) = 0xffd30000;
+ *((int *)&__m128_op0[0]) = 0x00130000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xe1000000;
+ *((int *)&__m128_op0[2]) = 0x4deb2610;
+ *((int *)&__m128_op0[1]) = 0xe101e001;
+ *((int *)&__m128_op0[0]) = 0x4dec4089;
+ *((unsigned long *)&__m128i_result[1]) = 0x800000001d64c200;
+ *((unsigned long *)&__m128i_result[0]) = 0x800000001d881120;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x76f42488;
+ *((int *)&__m128_op0[0]) = 0x80000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff00000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0202f5f80000ff00;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x003fffc0;
+ *((int *)&__m128_op0[2]) = 0xffc0003f;
+ *((int *)&__m128_op0[1]) = 0xffc0ffc0;
+ *((int *)&__m128_op0[0]) = 0x003f003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffff7fffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x42652524;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000003900000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff00ff7f;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x7f800000;
+ *((int *)&__m128_op0[1]) = 0x2d1da85b;
+ *((int *)&__m128_op0[0]) = 0x7f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fffffff;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x80307028;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x8040007f;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000fefefe6a;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128d_op1[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128d_op1[0]) = 0x000000004fc04f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000003a0000003a;
+ *((unsigned long *)&__m128d_op1[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000068;
+ *((unsigned long *)&__m128d_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128d_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x4429146a7b4c88b2;
+ *((unsigned long *)&__m128d_op0[0]) = 0xe22b3595efa4aa0c;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000400000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000fffffff5;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0xe7e5560400010001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xe7e5dabf00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x03050302;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x03010302;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000600007fff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000008ffffa209;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x046a09ec009c0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x000aa822;
+ *((int *)&__m128_op0[2]) = 0xa79308f6;
+ *((int *)&__m128_op0[1]) = 0x03aa355e;
+ *((int *)&__m128_op0[0]) = 0x1d37b5a1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffff00;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrne_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00001802;
+ *((int *)&__m128_op0[0]) = 0x041b0013;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x004200a000200000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0001000101fd01fe;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000c2f90000bafa;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff80ffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0x7ffffffe;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0804080407040804;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0804080407040804;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00010001;
+ *((int *)&__m128_op0[2]) = 0x00010001;
+ *((int *)&__m128_op0[1]) = 0x00010001;
+ *((int *)&__m128_op0[0]) = 0x00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000003ffda00f3;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000003ffda00f3;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xfffffadf;
+ *((int *)&__m128_op0[2]) = 0xfedbfefe;
+ *((int *)&__m128_op0[1]) = 0x5f5f7bfe;
+ *((int *)&__m128_op0[0]) = 0xdefb5ada;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff80000000;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffa6ff91fdd8ef77;
+ *((unsigned long *)&__m128d_op0[0]) = 0x061202bffb141c38;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfefffffffed08f77;
+ *((unsigned long *)&__m128d_op1[0]) = 0x8160cdd2f365ed0d;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000001;
+ *((int *)&__m128_op0[2]) = 0x084314a6;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0x084314a6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x3f413f4100000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000017fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128d_op1[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128d_op1[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vftintrp_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x3a800000;
+ *((int *)&__m128_op0[2]) = 0x3a800000;
+ *((int *)&__m128_op0[1]) = 0x000ef000;
+ *((int *)&__m128_op0[0]) = 0x0000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vftintrp_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x10404000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x09610001;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x0000001a;
+ *((int *)&__m128_op0[2]) = 0xfffffff7;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000000202fe02;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op1[0]) = 0xffff00fc0000ff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00040004;
+ *((int *)&__m128_op0[2]) = 0x00040004;
+ *((int *)&__m128_op0[1]) = 0x00040004;
+ *((int *)&__m128_op0[0]) = 0x00040004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00ffff00;
+ *((int *)&__m128_op0[2]) = 0xff00ff00;
+ *((int *)&__m128_op0[1]) = 0x00ffff00;
+ *((int *)&__m128_op0[0]) = 0xff00ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x013ec13e;
+ *((int *)&__m128_op0[1]) = 0xc03fc03f;
+ *((int *)&__m128_op0[0]) = 0xc0ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffdfffffff8;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x7fffffff7ffffffb;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x43800000;
+ *((int *)&__m128_op0[0]) = 0x43800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000100;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000014;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrm_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff7;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x80307028ffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8040007fffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff84fff4;
+ *((int *)&__m128_op0[2]) = 0xff84fff4;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x7fff0007e215b122;
+ *((unsigned long *)&__m128d_op1[0]) = 0x7ffeffff7bfff828;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x07ffc000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffff0000;
+ *((int *)&__m128_op0[0]) = 0x0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xf039b8c0;
+ *((int *)&__m128_op0[2]) = 0xc61e81ef;
+ *((int *)&__m128_op0[1]) = 0x6db7da53;
+ *((int *)&__m128_op0[0]) = 0xfbd2e34b;
+ *((unsigned long *)&__m128i_result[1]) = 0x80000000ffffd860;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff80000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00020000;
+ *((int *)&__m128_op0[0]) = 0xffff0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00027113;
+ *((int *)&__m128_op0[2]) = 0x50a27112;
+ *((int *)&__m128_op0[1]) = 0x00d57017;
+ *((int *)&__m128_op0[0]) = 0x94027113;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xff80ff80;
+ *((int *)&__m128_op0[2]) = 0x7e017f01;
+ *((int *)&__m128_op0[1]) = 0x7f3b7f3f;
+ *((int *)&__m128_op0[0]) = 0x7f3b7f21;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vftintrz_w_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m128d_op0[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128d_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128d_op1[1]) = 0x00000000047fe2f0;
+ *((unsigned long *)&__m128d_op1[0]) = 0x00000000047fe2f0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_w_d (__m128d_op0, __m128d_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-4.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-4.c
new file mode 100644
index 0000000..9c5bb91
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vftint-4.c
@@ -0,0 +1,345 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ *((int *)&__m128_op0[3]) = 0x0000c77c;
+ *((int *)&__m128_op0[2]) = 0x000047cd;
+ *((int *)&__m128_op0[1]) = 0x0000c0f1;
+ *((int *)&__m128_op0[0]) = 0x00006549;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0xffffffff;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xffffffff;
+ *((int *)&__m128_op0[0]) = 0xfffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0xffffffff;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0xffffffee;
+ *((int *)&__m128_op0[0]) = 0x00000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x0000ffff;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x63636363;
+ *((int *)&__m128_op0[2]) = 0x63636363;
+ *((int *)&__m128_op0[1]) = 0x63636363;
+ *((int *)&__m128_op0[0]) = 0x63636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vftint_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0xfffffffe;
+ *((int *)&__m128_op0[0]) = 0xffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x02020004;
+ *((int *)&__m128_op0[2]) = 0x02020202;
+ *((int *)&__m128_op0[1]) = 0x00002000;
+ *((int *)&__m128_op0[0]) = 0x00010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x7fff7fff;
+ *((int *)&__m128_op0[2]) = 0x7fff7fff;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0x0000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x000000ff;
+ *((int *)&__m128_op0[2]) = 0x808000ff;
+ *((int *)&__m128_op0[1]) = 0x000000ff;
+ *((int *)&__m128_op0[0]) = 0x808000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x7f7f7f7f;
+ *((int *)&__m128_op0[1]) = 0x00000001;
+ *((int *)&__m128_op0[0]) = 0x00000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00002000;
+ *((int *)&__m128_op0[2]) = 0x00002000;
+ *((int *)&__m128_op0[1]) = 0x10000000;
+ *((int *)&__m128_op0[0]) = 0x10000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000001;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x67eb85af;
+ *((int *)&__m128_op0[2]) = 0xb2ebb000;
+ *((int *)&__m128_op0[1]) = 0xc8847ef6;
+ *((int *)&__m128_op0[0]) = 0xed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((int *)&__m128_op0[3]) = 0x00000000;
+ *((int *)&__m128_op0[2]) = 0x00000000;
+ *((int *)&__m128_op0[1]) = 0x00000000;
+ *((int *)&__m128_op0[0]) = 0x00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_wu_s (__m128_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000400000007004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x6a57a30ff0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010001;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x000000009c83e21a;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000022001818;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftint_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x800000001d64c200;
+ *((unsigned long *)&__m128d_op0[0]) = 0x800000001d881120;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x00000000f0009d3c;
+ *((unsigned long *)&__m128d_op0[0]) = 0x000000016fff9dff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000040a04000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000040a04000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128d_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128d_op0[0]) = 0x03fc03fc03fc03fc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vftintrz_lu_d (__m128d_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c
new file mode 100644
index 0000000..af75f8e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c
@@ -0,0 +1,488 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x4ee85545068f3133;
+ *((unsigned long *)&__m128i_op0[0]) = 0x870968c1f56bb3cd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x004e005500060031;
+ *((unsigned long *)&__m128i_result[0]) = 0xff870068fff5ffb3;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff082f000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc04d600d3aded151;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x004cff8fffde0051;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x003f0000ffffffff;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffc0001fffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001fffc0001fffc;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000750500006541;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000100fffffefd;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00ffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffe000000f6;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001fffffffe;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4050000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000f80007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000f8;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80ffffffffff80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff80ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffffffe;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xce9035c49ffff570;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0xce9035c49ffff574;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000454ffff9573;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80007fc000003f00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7d187e427c993f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7500000075000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7500000075000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007d1800007c99;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5555000054100000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5555000154100155;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000155;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffebe6ed565;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffebe6ed565;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffbe6ed563;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x78c00000ff000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000078c00000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7d3ac60000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007d3ac600;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffff82bb9784;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffffc6bb97ac;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff82bb9784;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc6bb97ac;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000003effff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000003effff;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffff359f358;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffff359f358;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000e2e36363;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000063636363;
+ __m128i_out = __lsx_vhaddw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff02000200;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe00001ffe200;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000383;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe400000003ffc001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe000ffff2382;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e39e496cbc9;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x03574e38e496cbc9;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xabff54e911f71b07;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa9ec4882f216ea11;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xaa0051e90ff91808;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000030000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000030000003f;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffff000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0001ffff9514;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x9c9c9c9c9c9c9c9c;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000400000001;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80ff807e017f01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f3b7f3f7f3b7f21;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0a0000001e000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a000000f6000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0980ff8174017f01;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000ef0000000003b;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000011ff040;
+ __m128i_out = __lsx_vhaddw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c
new file mode 100644
index 0000000..37c769a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c
@@ -0,0 +1,452 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ff0000;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080000000000000;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0052005200520052;
+ *((unsigned long *)&__m128i_result[0]) = 0x0052005200520052;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000fffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff000000ff;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00060012000e002b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000049ffffffaa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000127fffffea;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001201fe01e9;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f008000ea007f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00009f0000009f00;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000bd3d00000000;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000007f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000007f00000000;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ef400ad21fc7081;
+ *((unsigned long *)&__m128i_op1[0]) = 0x28bf0351ec69b5f2;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ad00007081;
+ *((unsigned long *)&__m128i_result[0]) = 0x000003510000b5f2;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5252adadadadadad;
+ *((unsigned long *)&__m128i_op1[0]) = 0xadad52525252adad;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000adad0000adad;
+ *((unsigned long *)&__m128i_result[0]) = 0x000052520000adad;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff8000010f78;
+ *((unsigned long *)&__m128i_op1[1]) = 0x002a001a001a000b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001a0000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7500000075007500;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00feff8000ff80ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007d1800007c99;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000f50000007500;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007e1600007d98;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff760386bdae46;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc1fc7941bc7e00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0802080408060803;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff000086bd;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ca000000c481;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000007fff9;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff2356fe165486;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5efeb3165bd7653d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000235600005486;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000b31600006544;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c83e21a22001818;
+ *((unsigned long *)&__m128i_op0[0]) = 0xdd3b8b02563b2d7b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00012c8a0000a58a;
+ __m128i_out = __lsx_vhaddw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa8beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0024d8f6a494006a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001a8beed86;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010024d8f5;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000078c00000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6a57a30ff0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000f0000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000040d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001fffffffe;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x80000000b57ec564;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000083ff0be0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001b57ec563;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000183ff0bdf;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000e2e3ffffd1d3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000008000e2e3;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200010002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200010002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4ee85545ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x870968c1f56bb3cd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x870968c1f56bb3cd;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000013d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0006000200000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0006000200000000;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000001b0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000001b0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000001b001b;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000004870ba0;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000010000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000010000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff8000010f800000;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhaddw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c
new file mode 100644
index 0000000..0b51cb8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c
@@ -0,0 +1,327 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffffc00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010000;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000008000000080;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff07effffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100110002;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffff01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffeff400000df4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ff91fffffff5;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00650001ffb0;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000bfffffffe0f6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010001000a;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x41dfffffffc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0039ffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffbeffffffffffff;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0037ffdfffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0037ffdfffeb007f;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4e3e133738bb47d2;
+ *((unsigned long *)&__m128i_result[1]) = 0xff98007a004d0050;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff9ff4a0057000e;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000501ffff0005;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000600000001;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020000ffff0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000001;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffae001effae;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_result[1]) = 0xffaeffadffaeffad;
+ *((unsigned long *)&__m128i_result[0]) = 0xffaeffadffaeffad;
+ __m128i_out = __lsx_vhsubw_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffff02;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffff01;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9727b8499727b849;
+ *((unsigned long *)&__m128i_op0[0]) = 0x12755900b653f081;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7d7f13fc7c7ffbf4;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff9727ffff9727;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffe79ffffba5f;
+ __m128i_out = __lsx_vhsubw_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000100010;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vhsubw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000100c6ffef10c;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffff70;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff9001a47e;
+ __m128i_out = __lsx_vhsubw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000a6;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff59;
+ __m128i_out = __lsx_vhsubw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffc;
+ __m128i_out = __lsx_vhsubw_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x002affd600000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcbc2723a4f12a5f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x343d8dc5b0ed5a08;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffe00006aea;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000003fe0000141e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffc01ffffebe2;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x67eb8590b2ebafe1;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x56a09e662ab46b31;
+ *((unsigned long *)&__m128i_op1[0]) = 0xb4b8122ef4054bb3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4b47edd10bfab44d;
+ __m128i_out = __lsx_vhsubw_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c
new file mode 100644
index 0000000..26b51ee
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c
@@ -0,0 +1,353 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe00fe00fe00fd01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe00fffefe0100f6;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff0001ffffff0a;
+ __m128i_out = __lsx_vhsubw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000017161515;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000095141311;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x76f424887fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000170014;
+ *((unsigned long *)&__m128i_result[0]) = 0xff0cff78ff96ff14;
+ __m128i_out = __lsx_vhsubw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff7cffd6ffc700b0;
+ __m128i_out = __lsx_vhsubw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vhsubw_hu_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff00000000;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0001ffff0001;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010100000101;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefeff00fefeff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefeff00fefeff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007e7e00007e7e;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007e7e00007e7e;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2e3a36363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa2e3a36463636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000a2e300006363;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000a2e300006363;
+ __m128i_out = __lsx_vhsubw_wu_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000052527d7d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000052527d7d;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002400180004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000024;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xabff54f1ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa5f7458b000802ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fff7fc01;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000002;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000002;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80008a7555aa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a7535006af05cf9;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff758aaa56;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffa9fb0d07;
+ __m128i_out = __lsx_vhsubw_du_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0f180000ffe00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ca02f854;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000004b01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffb4ff;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe4b5ffff87f8;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fc03fc000000003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f7f1fd800000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fc03fc000000004;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc080800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc080800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7efefefe82010201;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x418181017dfefdff;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x67eb85afb2ebb000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe593c8c4e593c8c4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff8000010f78;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff7f0080ff7ef088;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000155;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffff10000;
+ __m128i_out = __lsx_vhsubw_qu_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvh.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvh.c
new file mode 100644
index 0000000..aa802b2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvh.c
@@ -0,0 +1,353 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007fffff00000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x195f307a5d04acbb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6a1a3fbb3c90260e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x195f307a5d04acbb;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8644000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaed495f03343a685;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffbe6ed563;
+ *((unsigned long *)&__m128i_result[1]) = 0x8644ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000fffe;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000e13;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000e13;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000a000a00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000a000a00000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00ff00ff00ff00;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000004f804f80;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000004f804f80;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x004f0080004f0080;
+ *((unsigned long *)&__m128i_result[0]) = 0x004f0080004f0080;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ffa7f8ff81;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000003f0080ffc0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007fff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000a7f87fffff81;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000ffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000080003f80ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x202020202020ff20;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x2000200020002000;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808ffff0808ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808ffff0808ffff;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000157;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002008360500088;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000008;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000f3040705;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00ff00ff00ff00;
+ __m128i_out = __lsx_vilvh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vilvh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c
new file mode 100644
index 0000000..88c66f2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vilvl.c
@@ -0,0 +1,327 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000201000000000b;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffcff;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7404443064403aec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000d6eefefc0498;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff7f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2d1da85b7f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x002d001dd6a8ee5b;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe7ffc8004009800;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000010;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000c0000bd49;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff0000007f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001e8e1d8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000e400000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001e8e1d8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000e400000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000e4e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000101;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000000000000;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffe0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffe0;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff80005613;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007f800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000807f80808000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80006b0000000b00;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000080808000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080006b0000000b;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc0808000c0808000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xc080800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc080800000000000;
+ __m128i_out = __lsx_vilvl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff010300ff0103;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007ffff001000300;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff0001000300;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f00ff00ff00fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x8);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0014001400140000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001400000000;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000009c007c00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000071007600;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000060002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000060002;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe4c8b96e2560afe9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc001a1867fffa207;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000c0010000a186;
+ *((unsigned long *)&__m128i_result[0]) = 0x00067fff0002a207;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000014414104505;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1011050040004101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000014414104505;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1011050040004101;
+ *((unsigned long *)&__m128i_result[1]) = 0x1010111105050000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040000041410101;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vilvl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffac5cffffac5c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffac5cffffac5c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x010169d9010169d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01010287010146a1;
+ *((unsigned long *)&__m128i_result[1]) = 0xff01ff01ac025c87;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01ff01ac465ca1;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff01ff01ac025c87;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01ff01ac465ca1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff01ff0100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xac465ca100000000;
+ __m128i_out = __lsx_vilvl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf8e1a03affffe3e2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000246d9755;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002427c2ee;
+ *((unsigned long *)&__m128i_result[1]) = 0xf8e10000a03a0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff2427e3e2c2ee;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffe4ffe4ffe4ffe4;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffe4ffe4ffe4ffe4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01e41ffff0e440;
+ __m128i_out = __lsx_vilvl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01e41ffff0ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff01ffffe41f0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff00000ffff0000;
+ __m128i_out = __lsx_vilvl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c
new file mode 100644
index 0000000..2b9dcc0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c
@@ -0,0 +1,278 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000007942652524;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4265252400000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_op1 = 0x0000007942652524;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff2524ffffffff;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000210011084;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vinsgr2vr_d (__m128i_op0, long_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5d5d5d5d5d5d5d55;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x5d5d5d005d5d5d55;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x1);
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020202020;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_result[0]) = 0x202020202020ff20;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fe01fc0005fff4;
+ int_op1 = 0x0000000020202020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000820202020;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe01fc0005fff4;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffbfffffffbf;
+ long_op1 = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003a24;
+ __m128i_out = __lsx_vinsgr2vr_d (__m128i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ef8000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ef8000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ef8000000000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ long_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_d (__m128i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001000;
+ int_op1 = 0x000000007ff00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000020006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000020006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000600;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001f1f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000000001f1f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ long_op1 = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vinsgr2vr_d (__m128i_op0, long_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff0000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ffffff0000;
+ __m128i_out = __lsx_vinsgr2vr_w (__m128i_op0, int_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vinsgr2vr_h (__m128i_op0, int_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x04faf60009f5f092;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04fafa9200000000;
+ int_op1 = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x04faf600fff5f092;
+ *((unsigned long *)&__m128i_result[0]) = 0x04fafa9200000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vinsgr2vr_b (__m128i_op0, int_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c
new file mode 100644
index 0000000..7cd9abb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vld.c
@@ -0,0 +1,62 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_result[0]) = 0x3ab7a3fc47a5c31a;
+ __m128i_out = __lsx_vld ((unsigned long *)&__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_result[0]) = 0x3ab7a3fc47a5c31a;
+ __m128i_out = __lsx_vldx ((unsigned long *)&__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0xc3c3c3c3c3c3c3c3;
+ *((unsigned long *)&__m128i_result[0]) = 0xc3c3c3c3c3c3c3c3;
+ __m128i_out = __lsx_vldrepl_b ((unsigned long *)&__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0xc31ac31ac31ac31a;
+ *((unsigned long *)&__m128i_result[0]) = 0xc31ac31ac31ac31a;
+ __m128i_out = __lsx_vldrepl_h ((unsigned long *)&__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x47a5c31a47a5c31a;
+ *((unsigned long *)&__m128i_result[0]) = 0x47a5c31a47a5c31a;
+ __m128i_out = __lsx_vldrepl_w ((unsigned long *)&__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[0]) = 0x3ab7a3fc47a5c31a;
+ __m128i_out = __lsx_vldrepl_d ((unsigned long *)&__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c
new file mode 100644
index 0000000..089500e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vldi.c
@@ -0,0 +1,61 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_result[1]) = 0x00a300a300a300a3;
+ *((unsigned long *)&__m128i_result[0]) = 0x00a300a300a300a3;
+ __m128i_out = __lsx_vldi (1187);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffe15;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffe15;
+ __m128i_out = __lsx_vldi (3605);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0xecececececececec;
+ *((unsigned long *)&__m128i_result[0]) = 0xecececececececec;
+ __m128i_out = __lsx_vldi (1004);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff00ff00ff00;
+ __m128i_out = __lsx_vldi (-1686);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x3);
+ *((unsigned long *)&__m128i_result[1]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_result[0]) = 0x004d004d004d004d;
+ __m128i_out = __lsx_vldi (1101);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0000000a000000;
+ __m128i_out = __lsx_vldi (-3318);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff00ff00ff00;
+ __m128i_out = __lsx_vldi (-1686);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0000000a000000;
+ __m128i_out = __lsx_vldi (-3318);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c
new file mode 100644
index 0000000..3fade51
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmadd.c
@@ -0,0 +1,450 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffa486c90f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1f52d710bf295626;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff7f01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x78c00000ff000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff7f01ff01;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfa31dfa21672e711;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1304db85e468073a;
+ *((unsigned long *)&__m128i_op2[1]) = 0x887c8beb969e00f2;
+ *((unsigned long *)&__m128i_op2[0]) = 0x101f8b680b6f8095;
+ *((unsigned long *)&__m128i_result[1]) = 0x7582ed22cb1c6e12;
+ *((unsigned long *)&__m128i_result[0]) = 0x35aaa61c944f34c2;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_result[0]) = 0x5252525252525252;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xc);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[1]) = 0xbfffbfffbfffbffe;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4000400040004002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op2[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xf10cf508f904fd01;
+ *((unsigned long *)&__m128i_result[0]) = 0xf10cf508f904fd01;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffb080ffffb080;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffb080ffffb080;
+ *((unsigned long *)&__m128i_op2[1]) = 0x004fcfcfd01f9f9f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x9f4fcfcfcf800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3504b5fd2dee1f80;
+ *((unsigned long *)&__m128i_result[0]) = 0x4676f70fc0000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf7f7f7ff8e8c6d7e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf7f7f7f7f7f7fbff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xf7f7f7ff8e8c6d7e;
+ *((unsigned long *)&__m128i_result[0]) = 0xf7f7f7f7f7f7fbff;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0fbc1df53c1ae3f9;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff820f81;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xf144e32bc4e61d27;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000020017ef19f;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000004b01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000004b01;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffff0000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffefffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf001f0010101f002;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007f41;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000000000001;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01ff020000ff03ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01346b8d00b04c5a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x002affd600000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcbc2723a4f12a5f8;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x01ff020000ff03ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x01346b8d00b04c5a;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080808000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080808000;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000455555555;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007f00ff00ff00fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f00ff00ff00fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xdcec560380000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x08ec7f7f80000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_op2[1]) = 0x32d8f0a905b6c59b;
+ *((unsigned long *)&__m128i_op2[0]) = 0x322a52fc2ba83b96;
+ *((unsigned long *)&__m128i_result[1]) = 0xaa14efac3bb62636;
+ *((unsigned long *)&__m128i_result[0]) = 0xd6c22c8353a80d2c;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op2[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff000000001f1f00;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00009c7c00007176;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00060fbf00040fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020fbf00000fbf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x9727b8499727b849;
+ *((unsigned long *)&__m128i_op2[0]) = 0x12755900b653f081;
+ *((unsigned long *)&__m128i_result[1]) = 0x00060fbf00040fbf;
+ *((unsigned long *)&__m128i_result[0]) = 0x00020fbf00000fbf;
+ __m128i_out = __lsx_vmadd_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000021100000211;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfb141d31fb141d31;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op2[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op2[0]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_result[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_result[0]) = 0xbbc8ecc5f3ced5f3;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0674c886fcba4e98;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfdce8003090b0906;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffc0ffc0003f;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffc0ffc0003f003f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x002a05a2f059094a;
+ *((unsigned long *)&__m128i_op2[0]) = 0x05ad3ba576eae048;
+ *((unsigned long *)&__m128i_result[1]) = 0xd4a6cc27d02397ce;
+ *((unsigned long *)&__m128i_result[0]) = 0x24b85f887e903abe;
+ __m128i_out = __lsx_vmadd_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0700f8ff0700f8ff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000007020701;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000007010701;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000008680f1ff;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636463abdf17;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e08016161198;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363636463abdf17;
+ *((unsigned long *)&__m128i_result[0]) = 0x41f8e08016161198;
+ __m128i_out = __lsx_vmadd_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x17c64aaef639f093;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op2[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff800000;
+ __m128i_out = __lsx_vmadd_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c
new file mode 100644
index 0000000..d3fd83d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c
@@ -0,0 +1,472 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000036de0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000003be14000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000ffff7a53;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000001f0000;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001f0a;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000cdc1;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe93d0bd19ff0c170;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5237c1bac9eadf55;
+ *((unsigned long *)&__m128i_op2[1]) = 0x05d0ae6002e8748e;
+ *((unsigned long *)&__m128i_op2[0]) = 0xcd1de80217374041;
+ *((unsigned long *)&__m128i_result[1]) = 0xf490ee600180ce20;
+ *((unsigned long *)&__m128i_result[0]) = 0x063bff74fb46e356;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op2[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op2[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0fff0fff0fff0fff;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363636363636363;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffe00029f9f6061;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f5ec0a0feefa0b0;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffe00029fb060b1;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x3);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8d78336c83652b86;
+ *((unsigned long *)&__m128i_op1[0]) = 0x39c51f389c0d6112;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffff0001ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ff9b0082;
+ *((unsigned long *)&__m128i_result[0]) = 0x003a0037fff2fff8;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_result[0]) = 0x05fafe0101fe000e;
+ __m128i_out = __lsx_vmaddwev_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff82bb9784;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffc6bb97ac;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7fffffff82bb9784;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fffffffc6bb97ac;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff82bb9784;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc6bb97ac;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x05d0ba0002e8802e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd005e802174023d6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc000c000c000ff81;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0ba00ba00ba00ba0;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0ba00ba00ba011eb;
+ *((unsigned long *)&__m128i_result[1]) = 0x05d0ae6002e8748e;
+ *((unsigned long *)&__m128i_result[0]) = 0xcd1de80217374041;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ff00fe00ff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000fff00000e36;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000fef01000e27ca;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x680485c8b304b019;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc89d7f0fed582019;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_op2[1]) = 0x67157b5100005000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x387c7e0a133f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x680485c8b304b019;
+ *((unsigned long *)&__m128i_result[0]) = 0xc89d7f0ff90da019;
+ __m128i_out = __lsx_vmaddwev_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01fc020000fe0100;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa23214697fd03f7f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7c7c9c0000007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7c7c9c0000007176;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x022002101b200203;
+ *((unsigned long *)&__m128i_op0[0]) = 0x022002101b200203;
+ *((unsigned long *)&__m128i_op1[1]) = 0x022002101b200203;
+ *((unsigned long *)&__m128i_op1[0]) = 0x022002101b200203;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000080c43b700;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x036caeeca7592703;
+ *((unsigned long *)&__m128i_result[0]) = 0x022002101b200203;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c83e21a22001818;
+ *((unsigned long *)&__m128i_op1[0]) = 0xdd3b8b02563b2d7b;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000009c83e21a;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000022001818;
+ *((unsigned long *)&__m128i_result[1]) = 0xf2c97aaa7d8fa270;
+ *((unsigned long *)&__m128i_result[0]) = 0x0b73e427f7cfcb88;
+ __m128i_out = __lsx_vmaddwev_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0006000200000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505445465593af1;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0006000200000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000780000007800;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000000010000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf047ef0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff80800001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff80800001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff7fff7ef;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080ffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffbff8888080a;
+ *((unsigned long *)&__m128i_result[0]) = 0x080803ff807ff7f9;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fc03fc000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fc03fc000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f801fe000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01fe01fd01fd01fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x5d7f5d007f6a007f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fff7fff7fff7f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000500000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m128i_op2[0]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c
new file mode 100644
index 0000000..8392856
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c
@@ -0,0 +1,383 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7e00fe0000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffbffffff85;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffc0000fdfc;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3941248880000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3941248880000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x76f4248880000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000e36400005253;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000035ed0000e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x400000003fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4000000040000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x400000003fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x4000000040000000;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_op0[0]) = 0x78508ad4ec2ffcde;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffdfdc0d;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000ffdfdc0d;
+ *((unsigned long *)&__m128i_result[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_result[0]) = 0x78508ad4ae70fd87;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000440efffff000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000003b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x440ef000440ef000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x4400000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000440efffff000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000003b;
+ __m128i_out = __lsx_vmaddwev_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000ffc2f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00201df000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc2ffe700000007;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00010020fffeffde;
+ *((unsigned long *)&__m128i_op2[0]) = 0x011f57c100201a46;
+ *((unsigned long *)&__m128i_result[1]) = 0x001ffce00016fb41;
+ *((unsigned long *)&__m128i_result[0]) = 0x57cb857100001a46;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7c7c9c0000007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00ff000000001f1f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7c7c9c0000007176;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc5c53492f25acbf2;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff000000001f1f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_result[0]) = 0xc5c53492f25acbf2;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x34947b4b11684f92;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd73691661e5b68b4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000016f303dff6d2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000016f303dff6d2;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fffffff00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x34947b4b11684f92;
+ *((unsigned long *)&__m128i_result[0]) = 0xee297a731e5c5f86;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00bbfff7fffffff7;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff008ff820;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe8008fffe7008f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00010001f1153780;
+ __m128i_out = __lsx_vmaddwev_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000021;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op2[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001808281820102;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001808201018081;
+ __m128i_out = __lsx_vmaddwev_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000010100fe0101;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffff0200ffff01ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f7f80807f7f80;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000020302030;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000020302030;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3fffffffc0000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffff0100000001;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffff0100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000006e17bfd8;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x00010000fffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000008000e2e3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000008000e2e3;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080806362;
+ *((unsigned long *)&__m128i_result[0]) = 0x807f808000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffa;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8101010181010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8101010181010101;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000101010015;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffed00010001;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c
new file mode 100644
index 0000000..bab2c6c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c
@@ -0,0 +1,383 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xc0c00000c0c00000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xc0c00c01c2cd0009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f78787f00f7f700;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000f7f700f7f700;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000400;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000000000040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000080003f80ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000080003f80ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff81ff82ff810081;
+ *((unsigned long *)&__m128i_op2[0]) = 0xff82ff810081ff81;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x841f000fc28f801f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x841f000fc28f801f;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xe593c8c4e593c8c4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x76ecfc8b85ac78db;
+ __m128i_out = __lsx_vmaddwev_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000fff3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000000000040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010400;
+ __m128i_out = __lsx_vmaddwev_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100013fa0;
+ __m128i_out = __lsx_vmaddwev_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000002b0995850;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff80005613;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007f800000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffff80005613;
+ *((unsigned long *)&__m128i_op2[0]) = 0x007f800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff00011cf0c569;
+ *((unsigned long *)&__m128i_result[0]) = 0xc0000002b0995850;
+ __m128i_out = __lsx_vmaddwev_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ffffff81fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff00ffff7e01;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000fffe01fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe00fffe86f901;
+ __m128i_out = __lsx_vmaddwev_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff8004000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbfffbfffbfffbffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xbfffbfffbfffbffe;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfffbfffbfffbffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffd3000000130000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000f02e1f80f04;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000f02e1f80f04;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x5a57bacbd7e39680;
+ *((unsigned long *)&__m128i_op2[0]) = 0x6bae051ffed76001;
+ *((unsigned long *)&__m128i_result[1]) = 0xf3eb458161080000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffe9454286c0e000;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0051005200510052;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0051005200510052;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe65ecc1be5bc;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe65ecc1be5bc;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf1f1f1f1865e65a1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff941d;
+ *((unsigned long *)&__m128i_op2[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_op2[0]) = 0xf1f1f1f1865e65a1;
+ *((unsigned long *)&__m128i_result[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_result[0]) = 0x78508ad4ec2ffcde;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000120000000d;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000cfffffff2;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000dfffffff1;
+ __m128i_out = __lsx_vmaddwev_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff80ffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7ffffffeffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000002fe800000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffffe0100000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80000000000001;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c
new file mode 100644
index 0000000..5875aa5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c
@@ -0,0 +1,372 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffff000f0008d3c;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffff0016fff8d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000100f8100002;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff0ff8006f0f950;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x007ffd0001400840;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007ffd0001400840;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000002000;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffac0a000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000200000001b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffac0a000000;
+ __m128i_out = __lsx_vmaddwod_h_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000017fda829;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff8000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000800000000ffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x697eba2bedfa9c82;
+ *((unsigned long *)&__m128i_op2[0]) = 0xd705c77a7025c899;
+ *((unsigned long *)&__m128i_result[1]) = 0xffcb410000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffeb827ffffffff;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffffc00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffffc00;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000c5ac01015b;
+ *((unsigned long *)&__m128i_op1[0]) = 0xaaacac88a3a9a96a;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000f;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ef4002d21fc7001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x28bf02d1ec6a35b2;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xff8000007fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ef400ad21fc7081;
+ *((unsigned long *)&__m128i_result[0]) = 0x28bf0351ec69b5f2;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001200100012001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xbf80000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1040400000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0961000100000001;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7da9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x03574e39e496cbc9;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001010000;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000030000003f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3f77aab500000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3f77aab500000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fbc1df53c1ae3f9;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff820f81;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ff801c9e;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000810000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000700000004e000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000012020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000e00a18f5;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000002023dcdc;
+ *((unsigned long *)&__m128i_result[1]) = 0x000700000004e000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000000012020;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000120000000d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000011ffee;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000dfff2;
+ __m128i_out = __lsx_vmaddwod_d_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff7fffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffff7fffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000003fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ff8010000000001;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x01fc020000fe0100;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x78c00000ff000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x78c00000ff000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x78c00000ff000000;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1000100012030e02;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefefefefefefe;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x010105017878f8f6;
+ *((unsigned long *)&__m128i_op2[0]) = 0xf8f8fd0180810907;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080800000808;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000158;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x328e1080889415a0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3960b1a401811060;
+ *((unsigned long *)&__m128i_op1[1]) = 0x328e1080889415a0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3960b1a401811060;
+ *((unsigned long *)&__m128i_op2[1]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x32f3c7a38f9f4b8b;
+ *((unsigned long *)&__m128i_result[0]) = 0x2c9e5069f5d57780;
+ __m128i_out = __lsx_vmaddwod_q_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c
new file mode 100644
index 0000000..4be7fce
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c
@@ -0,0 +1,438 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd8248069ffe78077;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xd8248069ffe78077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xe31c86e90cda86f7;
+ __m128i_out = __lsx_vmaddwod_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00010020fffeffde;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100400100200e68;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00010020fffeffde;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0100400100200e68;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1ff85ffe2ae5d973;
+ *((unsigned long *)&__m128i_result[1]) = 0x00010020fffeffde;
+ *((unsigned long *)&__m128i_result[0]) = 0x011f57c100201a46;
+ __m128i_out = __lsx_vmaddwod_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a09080709080706;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwod_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc0800000;
+ __m128i_out = __lsx_vmaddwod_h_bu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_result[0]) = 0x003dc288077c7cc1;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffc0000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffc0000000000004;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000053a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000036280001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x42a0000042a02001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000036280001;
+ *((unsigned long *)&__m128i_result[0]) = 0x42a0000042a02001;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000ff00fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000fe00ff;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff946c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff946b;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff3c992b2e;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff730f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ffff946c;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffff946b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff946c;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffdffff946c;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000ff0000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0006ffff0004ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002ffff0000ffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff7f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002fffefffd0001;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffe000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c6fde000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xe000e0006080b040;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffe000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c6fde000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_op1[0]) = 0x030298a6a1030a49;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a753500950fa306;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0a753500950fa306;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a753500a9fa0d06;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f4f4f4f4f4f4f4f;
+ __m128i_out = __lsx_vmaddwod_d_wu (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f7f80807f7f80;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000020302030;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000020302030;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3fffffffc0000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffff0100000001;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffff0100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000006e17bfd8;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000006e17bfd8;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x00010000fffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000008000e2e3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000008000e2e3;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080806362;
+ *((unsigned long *)&__m128i_result[0]) = 0x807f808000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffa;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8101010181010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8101010181010101;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000101010015;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffed00010001;
+ __m128i_out = __lsx_vmaddwev_q_du (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c
new file mode 100644
index 0000000..8a4c395
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c
@@ -0,0 +1,460 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00003fe00ffe3fe0;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000b5207f80;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff208fffffa02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffff208fffffa02;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff208fffffa02;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000bd3d00000000;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op2[0]) = 0x2020202020207f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001021;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op2[0]) = 0xc3818bffe7b7a7b8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000467fe000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000467fef81;
+ __m128i_out = __lsx_vmaddwod_h_bu_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fc0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1e801ffc00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff020000fff4;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fc0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1e801ffc00000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80000000000001;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffffff03ffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00013fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000088500000f6a0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffd00000407;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000442900007b4c;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000e22b0000efa4;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffffff03ffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00013fff;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x685670d37e80682a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x14ccc6320176a4d2;
+ *((unsigned long *)&__m128i_result[0]) = 0x685670d37e80682a;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc0411fe800000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x601fbfbeffffffff;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffc105d1aa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffbc19ecca;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff3efa;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff43e6;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffa7;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000930400008a10;
+ *((unsigned long *)&__m128i_result[0]) = 0x00006f9100007337;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_w_hu_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op2[0]) = 0x001000100010c410;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffffff02fff4;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffff02fff4;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7e44bde9b842ff23;
+ *((unsigned long *)&__m128i_result[0]) = 0x00011e80007edff8;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffeffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe0dd268932a5edf9;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe0dd268932a5edf9;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xd8248069ffe78077;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_result[0]) = 0xbddaa86803e33c2a;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0028280000282800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7505853d654185f5;
+ *((unsigned long *)&__m128i_op2[0]) = 0x01010000fefe0101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x012927ffff272800;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffff7f00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff007f0101017f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000020000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000183fffffe5;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000073;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000000000002a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff7f00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff007f0101017f;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_op2[1]) = 0x3f8000003f800001;
+ *((unsigned long *)&__m128i_op2[0]) = 0x3f8000003f800001;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f8000003f800000;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000095896a760000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x006f0efe258ca851;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffff7fc8ffff8000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffff200000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000015516a768038;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff9ed2e1c000;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2000200000013fa0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000013fa0;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100013fa0;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080006b00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001b19b1c9c6da5a;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x001b19b1c9c6da5a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x008003496dea0c61;
+ __m128i_out = __lsx_vmaddwod_d_wu_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000001ff000001ff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xff80ffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7ffffffeffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000002fe800000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffffe0100000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80000000000001;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaddwev_q_du_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-1.c
new file mode 100644
index 0000000..b0e22f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-1.c
@@ -0,0 +1,317 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f007f007f007f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000003f;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000010000f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000010000f01;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfffcfffcfffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffdfffcfffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80df00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010100000100000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100000101000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010100000100000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100000101000;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0040000000ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0040000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040000000ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xb327b9363c992b2e;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa1e7b475d925730f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff3c992b2e;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff730f;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000001ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000001ff;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000003d0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000003d0000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007001400000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000053a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000700140000053a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004001000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80c400000148;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff80c1ffffe8de;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000148;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000034;
+ __m128i_out = __lsx_vmax_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000ff0000;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000a000a000a000a;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000b3a6000067da;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00004e420000c26a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd78cfd70b5f65d76;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5779108fdedda7e4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000b3a6000067da;
+ *((unsigned long *)&__m128i_result[0]) = 0x5779108f0000c26a;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op1[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_result[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_result[0]) = 0x020310edc003023d;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe03fe01fe01fe01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe3bfa3ffe3bfb21;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001d001d001d001d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001d001d001d0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001d001d001d001d;
+ *((unsigned long *)&__m128i_result[0]) = 0x001d001d001d0000;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000155;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000155;
+ __m128i_out = __lsx_vmax_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000051649b6;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd2f005e44bb43416;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000003e0000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000051649b6;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000003e0000003f;
+ __m128i_out = __lsx_vmax_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00012c8a0000a58a;
+ __m128i_out = __lsx_vmax_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-2.c
new file mode 100644
index 0000000..51a9a92
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmax-2.c
@@ -0,0 +1,362 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000007f0000;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77c03fd640003fc6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000003a0000003a;
+ *((unsigned long *)&__m128i_result[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_result[0]) = 0x77c03fd640003fc6;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbafebb00ffd500fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5b5b5b5aa4a4a4a6;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x5b5b5b5aadadadad;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe03fe3ffe01fa21;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000f50000007500;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007e1600007d98;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000fe00fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000f50000fe75fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe7efe00fe7dfe;
+ __m128i_out = __lsx_vmax_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2002040404010420;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101010180800101;
+ *((unsigned long *)&__m128i_result[1]) = 0x2002040404010420;
+ *((unsigned long *)&__m128i_result[0]) = 0x9c9c9c9c80800101;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff0;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffdfffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffdf;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf001f0010101f002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x685670d27e00682a;
+ *((unsigned long *)&__m128i_result[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_result[0]) = 0x685670d27e00682a;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_result[0]) = 0x27b169bbb8145f50;
+ __m128i_out = __lsx_vmax_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80ff0010ff06;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007f01000eff0a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff80ff0010ff06;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ff0000000007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000002bfd9461;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff0000000ad3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff000fffff000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffff00010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff000fffff000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001f;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc605c000aedd0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xc605c000aedd0000;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x09e8e9012fded7fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x479f64b03373df61;
+ *((unsigned long *)&__m128i_result[1]) = 0x09e8e9012fded7fd;
+ *((unsigned long *)&__m128i_result[0]) = 0x479f64b03373df61;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_result[1]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_result[0]) = 0x52525252adadadad;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080700000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vmax_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c
new file mode 100644
index 0000000..7cff1d8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c
@@ -0,0 +1,279 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0a0a0a0a0a0a0a;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003be14000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003bfb4000;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0b0b0b0b0b0b0b0b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0b0b0b0b0b0b0b0b;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007ffffffb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x010101017f010101;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0b0b0b0b0b0b0b0b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0b0b0b0b0b0b0b0b;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000c;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0606060606060606;
+ *((unsigned long *)&__m128i_result[0]) = 0x0606060606060606;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_b (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x027c027c000027c0;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001fc00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000001fc00000000;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000fff;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000a1ff4c;
+ *((unsigned long *)&__m128i_result[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000300a10003;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000b000b000b000b;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000400040004;
+ __m128i_out = __lsx_vmaxi_h (__m128i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe07e5fefefdddfe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020100fedd0c00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000201000000000b;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000004;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001f0a;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000050000007b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000500000005;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000004;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001fffff001fffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001fffff001fffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x001fffff001fffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x001fffff001fffff;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000b0000000b;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000e0000000e;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000900000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000900000009;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000600000006;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000600000006;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f80000000000007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000700000007;
+ __m128i_out = __lsx_vmaxi_w (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vmaxi_d (__m128i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000007f00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000000;
+ __m128i_out = __lsx_vmaxi_d (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc45a851c40c18;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000a;
+ __m128i_out = __lsx_vmaxi_d (__m128i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmaxi_d (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e880ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_result[0]) = 0x41f8e880ffffffff;
+ __m128i_out = __lsx_vmaxi_d (__m128i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c
new file mode 100644
index 0000000..b79af22
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c
@@ -0,0 +1,223 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000020002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_result[0]) = 0x0303030303030303;
+ __m128i_out = __lsx_vmaxi_bu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111111111111111;
+ __m128i_out = __lsx_vmaxi_bu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111111111111111;
+ __m128i_out = __lsx_vmaxi_bu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0a0a0a0a0a0a0a;
+ __m128i_out = __lsx_vmaxi_bu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0011001100110011;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_result[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f000d200e000c20;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x000fffefffefffef;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005000500050005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0005000500050005;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x001d001d20000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x001d001d20000020;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003fff00010000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00123fff00120012;
+ *((unsigned long *)&__m128i_result[0]) = 0x0012001200120012;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a001a001a001a;
+ *((unsigned long *)&__m128i_result[0]) = 0x001a001a001a001a;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001e001e001e001e;
+ *((unsigned long *)&__m128i_result[0]) = 0x001e001e001e001e;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001d001d001d001d;
+ *((unsigned long *)&__m128i_result[0]) = 0x001d001d001d001d;
+ __m128i_out = __lsx_vmaxi_hu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000800000008;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001600000016;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001600000016;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f5533a694f902c0;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x37c0001000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x37c0001000000001;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vmaxi_wu (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xcf00000000000000;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000011;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001c;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001c;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000d;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_result[0]) = 0x43d3e0000013e000;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001d;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001b;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vmaxi_du (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-1.c
new file mode 100644
index 0000000..b2a7a35
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-1.c
@@ -0,0 +1,434 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff000000ff00;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff91fffffff5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff00650001ffb0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000067400002685;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ff91fffffff5;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00650000ff85;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffcafff8ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000a0;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000008680f1ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80ffffff80ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff80ffff8680f1ff;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01e41ffff0e440;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe4ffffffe4ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe4fffff0e4ff;
+ __m128i_out = __lsx_vmin_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000a16316b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000063636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000a1630000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc0ff81000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000600000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffc0ff81000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fdffffffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe80000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80ffffffffff02;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80ffffffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x027e0000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80ffffffffff02;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffe0000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_result[0]) = 0xbbc8ecc5f3ced5f3;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc090380000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc090380000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xc090380000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8493941335f5cc0c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x625a7312befcb21e;
+ *((unsigned long *)&__m128i_result[1]) = 0x8493941300000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000002befcb21e;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000078c00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000d;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000a000a000a000a;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc605c000aedd0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5d5d5d5d5d5d5d5d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5d5d5d5d5d5d0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_result[0]) = 0xc605c000aedd0000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000003000000d613;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c0000000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000200000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff800000ff800000;
+ __m128i_out = __lsx_vmin_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000210011084;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000017f0a82;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5a5a5a5a5b5a5b5a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5a5a5a5a5b5a5b5a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x027c027c000027c0;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3e25c8317394dae6;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcda585aebbb2836a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xcda585aebbb2836a;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_result[0]) = 0x377b810912c0e000;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_result[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfcfcfcfcfcfcfd;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_result[0]) = 0xf9796558e39953fd;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-2.c
new file mode 100644
index 0000000..c90cae7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmin-2.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000300000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffe0004fffe0004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_result[0]) = 0xf9796558e39953fd;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_result[0]) = 0x27b169bbb8145f50;
+ __m128i_out = __lsx_vmin_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c63636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x9c9c9c9c00000000;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020207f7f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f417f417f027e03;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m128i_result[0]) = 0x2020202020207e03;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00008d3200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x09e8e9012fded7fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x479f64b03373df61;
+ *((unsigned long *)&__m128i_result[1]) = 0x00008d3200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a09080709080706;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a09080709080706;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a09080709080706;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xa87745dbd93e4ea1;
+ *((unsigned long *)&__m128i_op1[0]) = 0xaa49601e26d39860;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_result[1]) = 0x2006454652525252;
+ *((unsigned long *)&__m128i_result[0]) = 0x2006454652525252;
+ __m128i_out = __lsx_vmin_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000040100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffff2382;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000040100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7da9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001010000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0505050505050505;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000005050000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0028280000282800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000282800;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fd13fc02fe0c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fd14fe01fd16;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe00fd1400010000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2000200020002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2000200020002000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100013fa0;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000005003a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9611c3985b3159f5;
+ *((unsigned long *)&__m128i_result[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_result[0]) = 0x9611c3985b3159f5;
+ __m128i_out = __lsx_vmin_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000de0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000006f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001f0a;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000fea0000fffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff0cff78ff96ff14;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff007fff810001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000400530050ffa6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff7f810100001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001fffc0ffffe001;
+ *((unsigned long *)&__m128i_result[1]) = 0xff7f810100001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000400530050ffa6;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007efe7f7f8000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000b81c8382;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000077af9450;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000077af9450;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmin_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-1.c
new file mode 100644
index 0000000..772d040
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-1.c
@@ -0,0 +1,314 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffffffc;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00002f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958aefff895e;
+ *((unsigned long *)&__m128i_result[1]) = 0xfafafafafafafafa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfafa958aeffa89fa;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_result[1]) = 0xfbfbfbfbadadadad;
+ *((unsigned long *)&__m128i_result[0]) = 0xfbfbfbfbadadadad;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf1f1f1f1f1f1f1f1;
+ *((unsigned long *)&__m128i_result[0]) = 0xf1f1f1f1f1f1f1f1;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000f50000007500;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007e1600007d98;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000090900000998;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf1f181a2f1f1f1b0;
+ *((unsigned long *)&__m128i_result[0]) = 0xf1f1f1f1f180f1f1;
+ __m128i_out = __lsx_vmini_b (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff6fff6fff6fff6;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1716151416151413;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1514131214131211;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff3fff3fff3fff3;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff3fff3fff3fff3;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefefefefefefe;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_h (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff4fffffff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff4fffffff4;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff3fffffff3;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff3fffffff3;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffefffef;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01fe0400000006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000500000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01fe0400000005;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffafffffffa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffafffffffa;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000d0000000d;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, 8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x345002920f3017d6;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff7fffffff7;
+ __m128i_out = __lsx_vmini_w (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff7;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000000010000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100100000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff1;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff1;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000006;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000006;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00a6ffceffb60052;
+ *((unsigned long *)&__m128i_result[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff0;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff9;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff9;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x111110ff11111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111100;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x55aa55c3d5aa55c4;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaa55556fd5aaaac1;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000c;
+ *((unsigned long *)&__m128i_result[0]) = 0xaa55556fd5aaaac1;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff4;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffb;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffb;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_result[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfcfcdcfcfcfcdc;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001030103;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffc;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000085af0000b000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00017ea200002000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff7;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff4;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01e41ffff0ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01e41ffff0ffff;
+ __m128i_out = __lsx_vmini_d (__m128i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-2.c
new file mode 100644
index 0000000..6eaae21
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmini-2.c
@@ -0,0 +1,216 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffff0001ffff0001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000a163000016b0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303000103030001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000030300000303;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd8248069ffe78077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0d0d0d0d0d0d0d0d;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7da9b23a624082fd;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0505050505050505;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000005050000;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000e0000000e;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000001fffdfffdff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001fffdfffdff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010101010101;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000009c007c00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000071007600;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000009000900;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000009000900;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_result[0]) = 0x0303030303030303;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3220000d3f20000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8bff0000a7b80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0909000009090000;
+ __m128i_out = __lsx_vmini_bu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80000000b57ec564;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000083ff0be0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0014000000140014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0014000000140014;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0013001300130013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0013001300130013;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200020002;
+ __m128i_out = __lsx_vmini_hu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040004000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff0000007f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000003fc00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fe01fe00;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000a;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000d3460001518a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000084300000e55f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000016;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff2356fe165486;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5efeb3165bd7653d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000007;
+ __m128i_out = __lsx_vmini_du (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-1.c
new file mode 100644
index 0000000..5470d40
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-1.c
@@ -0,0 +1,254 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x82c539ffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc72df14afbfafdf9;
+ *((unsigned long *)&__m128i_op1[1]) = 0x82c539ffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc72df14afbfafdf9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff994cb09c;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffc3639d96;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0003c853c843c844;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003c853c843c844;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001808281820102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001808201018081;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001008281820102;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001008201010081;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010240010202;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0804080407040804;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000104000800;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1202120212021202;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1202120212021202;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1000100010001000;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf6548a1747e59090;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfeca2eb9931;
+ *((unsigned long *)&__m128i_op1[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[0]) = 0x370bdfeca2eb9931;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x805ffffe01001fe0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9a49e11102834d70;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8144ffff01c820a4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9b2ee1a4034b4e34;
+ *((unsigned long *)&__m128i_result[1]) = 0xff1affff01001fe0;
+ *((unsigned long *)&__m128i_result[0]) = 0xff1aff6d02834d70;
+ __m128i_out = __lsx_vmod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001d001d001d001d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001d001d001d0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001d001d001d001d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001d001d001d0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ffff000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03c0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03c0038000000380;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff000000ff00;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80000000307d0771;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0d8e36706ac02b9b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x80000000307d0771;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0d8e36706ac02b9b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x413e276583869d79;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f7f017f9d8726d3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000011ffee;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000dfff2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-2.c
new file mode 100644
index 0000000..8deb044
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmod-2.c
@@ -0,0 +1,254 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x16161616a16316b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x16161616a16316b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5a5a5a5a5b5a5b5a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5a5a5a5a5b5a5b5a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001494b494a;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001494b494a;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f801fa06451ef11;
+ *((unsigned long *)&__m128i_op1[0]) = 0x68bcf93435ed25ed;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000022666621;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffdd9999da;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f7f7f7f00107f04;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f0000fd7f0000fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000066621;
+ *((unsigned long *)&__m128i_result[0]) = 0x01ff00085e9900ab;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000bd3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xefffdffff0009d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000bd3d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff0000;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x478b478b38031779;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6b769e690fa1e119;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000004870ba0;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2006454690d3de87;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200020002;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff100000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000f000000000000;
+ __m128i_out = __lsx_vmod_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffe0000fffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffe0000fffe;
+ __m128i_out = __lsx_vmod_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000101fd01fe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80ff80ff80ff80;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80ff8080008000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000101fd01fe;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffcafff8ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff2cfed4fea8ff44;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffeffff0035ff8f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000a0;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x37c0001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003c853c843c844;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003c853c843c844;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003ddc5dac;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffefffff784;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f8000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001000010f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000011ff8bc;
+ __m128i_out = __lsx_vmod_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskgez.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskgez.c
new file mode 100644
index 0000000..64a950f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskgez.c
@@ -0,0 +1,119 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0403cfcf01c1595e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x837cd5db43fc55d4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000cb4a;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff7f01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000d;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000033;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffe00006aea;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffce;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskgez_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskltz.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskltz.c
new file mode 100644
index 0000000..8f743ec
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmskltz.c
@@ -0,0 +1,321 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x85bd6b0e94d89998;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd83c8081ffff8080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000f;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000013d;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000f0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000100010001fffd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001007c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9780697084f07dd7;
+ *((unsigned long *)&__m128i_op0[0]) = 0x87e3285243051cf3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000cdc1;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x05d0ae6002e8748e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcd1de80217374041;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000065a0;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000004b01;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e1d1c1b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000f;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff08ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003f3f;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000022;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000008080600;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff0018;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000035697d4e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000013ecaadf2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000006de1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5f9ccf33cf600000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003ffffe00800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000034;
+ __m128i_out = __lsx_vmskltz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc3818bffe7b7a7b8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e880ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000027;
+ __m128i_out = __lsx_vmskltz_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmskltz_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsknz.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsknz.c
new file mode 100644
index 0000000..d547af0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsknz.c
@@ -0,0 +1,104 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001e1f;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c63636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x009500b10113009c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x009500b10113009c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000005d5d;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffff000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000fe;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000007f41;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0014001400140000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000554;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x202544f490f2de35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x202544f490f2de35;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000a74aa8a55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6adeb5dfcb000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003ff8;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x317fce80317fce80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vmsknz_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsub.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsub.c
new file mode 100644
index 0000000..47cf33c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmsub.c
@@ -0,0 +1,461 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfeffffffffff0002;
+ *((unsigned long *)&__m128i_op2[1]) = 0x54beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op2[0]) = 0x8024d8f6a494afcb;
+ *((unsigned long *)&__m128i_result[1]) = 0xa8beed87bc3f2be1;
+ *((unsigned long *)&__m128i_result[0]) = 0x0024d8f6a494006a;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x3);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001ffff0001ffff;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffffff0ffe04000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001fc0000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000200010;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x040004000400040d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x040004000400040d;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xb327b9363c99d32e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa1e7b475d925730f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000003f80b0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_result[1]) = 0xb327b9363c992b2e;
+ *((unsigned long *)&__m128i_result[0]) = 0xa1e7b475d925730f;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000ff0000;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000004c7f4c7f;
+ *((unsigned long *)&__m128i_op2[0]) = 0xe0c0c0c0d1c7d1c6;
+ *((unsigned long *)&__m128i_result[1]) = 0x061006100613030c;
+ *((unsigned long *)&__m128i_result[0]) = 0x4d6814ef9c77ce46;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000f00;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000002bfd9461;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3727f00000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc7e01fcfe0000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3727112c00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x39201f7120000040;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xe5b9012c00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc7e01fcfe0000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0204;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000442900007b4c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000e22b0000efa4;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000442800007b50;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0204;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffefffffffe;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op2[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000029;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff0000007f800000;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0fff0fff0fff0fff;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000003f0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffc3ffff003e;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000003f0000ffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffc3ffff003e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000f07f0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff177fffff0fc;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffbfffefffc9510;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffbfffefffc9510;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a09080709080706;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfffbfffefffc9510;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfffbfffefffc9510;
+ *((unsigned long *)&__m128i_result[1]) = 0x29c251319c3a5c90;
+ *((unsigned long *)&__m128i_result[0]) = 0x62fb9272df7da6b0;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8f8f8f8f8f8f8f8f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8f8f8f8f8f8f8f8f;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x800000007fffffff;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000053a4f452;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001400000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001400000000;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00680486ffffffda;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff913bfffffffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00680486ffffffda;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff913bfffffffd;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_result[1]) = 0x00680486ffffffda;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff913bb9951901;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0021b761002c593c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x002584710016cc56;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000001e03;
+ *((unsigned long *)&__m128i_result[1]) = 0x0021b761002c593c;
+ *((unsigned long *)&__m128i_result[0]) = 0x002584710016ea59;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000290;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000290;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0002000400000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000500000001;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op0[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffae001effae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op2[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_result[1]) = 0xfd200ed2fd370775;
+ *((unsigned long *)&__m128i_result[0]) = 0x96198318780e32c5;
+ __m128i_out = __lsx_vmsub_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000400040004;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128i_op2[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmsub_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c
new file mode 100644
index 0000000..ab650a0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c
@@ -0,0 +1,353 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x059a35ef139a8e00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040404040404040;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc0c00000c0c00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc0c00c01c2cd0009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc0fffff000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffe00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff0000ac26;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ffffff81fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff00ffff7e01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000fffe01fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000fe86;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff8000010f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fff80000;
+ __m128i_out = __lsx_vmuh_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbf3efff536d5169b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ebdfffffddf3f40;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f5ec0a0feefa0b0;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fffffff3ffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fffffff3ffffffe;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff0101ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffffa0204000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001f7fc100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x001f7fff00000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000cd630000cd63;
+ *((unsigned long *)&__m128i_op1[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffcd63ffffcd63;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffd765ffffd765;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000015516a768038;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff9ed2e1c000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x007ffd0001400840;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007ffd0001400840;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fffffff80000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003ffd000a4000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000009c400000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0202fe02fd020102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000202fe02;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000006362ffff;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffe0002;
+ __m128i_out = __lsx_vmuh_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c
new file mode 100644
index 0000000..60b6e35
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c
@@ -0,0 +1,372 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000c5ac01015b;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaaacac88a3a9a96a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000038003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000040033;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000068;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f881a20ffd02b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0ff780a10efc01af;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fe7f0000;
+ __m128i_out = __lsx_vmuh_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000efffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001001100110068;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1d8000001d800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1d8000001d800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1d8000001d800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1d8000001d800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0366000003660000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0366000003660000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc5c534920000c4ed;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ef400ad21fc7081;
+ *((unsigned long *)&__m128i_op0[0]) = 0x28bf0351ec69b5f2;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ef3ddac21fc5a2c;
+ *((unsigned long *)&__m128i_result[0]) = 0x28bee9edec690869;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffe000ffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000214f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc31b63d846ebc810;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff0000800000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff941d;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000010a7;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000046ebaa2c;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000cf4f4f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000cf4f4f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000005f0003e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000003397dd140;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000004bd7cdd20;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0016ffb00016ffb0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0016ffb00016ffb0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000004a294b;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000006d04bc;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007ffe7ffe400000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007ffd0001400840;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffa800000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000157;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001a64b345308091;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001f2f2cab1c732a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1baf8eabd26bc629;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1c2640b9a8e9fb49;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002dab8746acf8e;
+ *((unsigned long *)&__m128i_result[0]) = 0x00036dd1c5c15856;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003a7fc58074ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000eeff1100e;
+ __m128i_out = __lsx_vmuh_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmul.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmul.c
new file mode 100644
index 0000000..8ba6662
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmul.c
@@ -0,0 +1,282 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x54feed87bc3f2be1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8064d8f6a494afcb;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffe003c1f0077;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff0074230438;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff0000000438;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000800800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000800800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000004000000000;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff5fff4002ffff5;
+ *((unsigned long *)&__m128i_op1[1]) = 0xaa858644fb8b3d49;
+ *((unsigned long *)&__m128i_op1[0]) = 0x18499e2cee2cc251;
+ *((unsigned long *)&__m128i_result[1]) = 0x8644000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xaed495f03343a685;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505443065413aed;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_result[1]) = 0xb71289fdfbea3f69;
+ *((unsigned long *)&__m128i_result[0]) = 0x4e17c2ffb4851a40;
+ __m128i_out = __lsx_vmul_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fcfefc02fdf7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fcfffe01fd01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128i_result[1]) = 0xc72ef153fc02fdf7;
+ *((unsigned long *)&__m128i_result[0]) = 0xca31bf15fd010000;
+ __m128i_out = __lsx_vmul_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc000c000c000ff81;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5d5d5d5d5d5d5d5d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5d5d5d5d5d5d0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_result[0]) = 0xc605c000aedd0000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xacc8c794af2caf01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa91e2048938c40f0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xeeb1e4f43c3763f3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff5a6fe3d7;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000021e79364;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000718ea657431b;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000006ca193ec;
+ *((unsigned long *)&__m128i_result[0]) = 0x00008e72b5b94cad;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x467f6080467d607f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007f008000ea007f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffc0001fffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffe0004fffe0004;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc1bdceee242070db;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe8c7b756d76aa478;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f433212dce09025;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_result[0]) = 0x9611c3985b3159f5;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd27db010d20fbf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffd27db010d20fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x9727b8499727b849;
+ *((unsigned long *)&__m128i_result[0]) = 0x12755900b653f081;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x02f3030303030303;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x06d9090909090909;
+ __m128i_out = __lsx_vmul_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff81ffff7f03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04ffff8101ff81ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0000001e000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a000000f6000000;
+ __m128i_out = __lsx_vmul_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x317fce80317fce80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmul_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c
new file mode 100644
index 0000000..8357f4e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c
@@ -0,0 +1,434 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001f7fc100000404;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000002a000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff0101ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffffa0204000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe1ffc100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000400000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000009000900;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000009000900;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffc3;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff9dff9dff9dff9d;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000efffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe50000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffe020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fc00000010a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001b0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff81007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffb7005f0070007c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000007c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000005f0003e000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffbfc0ffffbfc0;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff0100000001;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x478b478b38031779;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6b769e690fa1e119;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fe98c2a0;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007770ffff9411;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007770ffff9411;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000100000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x37b951002d81a921;
+ __m128i_out = __lsx_vmulwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000e0000000e0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000e0000000e0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000c400;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffff98dea;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000f80007;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000006c80031;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010001;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0004280808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010203030201000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000808080800;
+ __m128i_out = __lsx_vmulwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000b5207f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2000000020000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200200000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x6a57a30ff0000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff700000009;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8001000180010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8001000184000800;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff80007e028401;
+ *((unsigned long *)&__m128i_result[0]) = 0x9a10144000400000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000bd003d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000077af9450;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000047404f4f040d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000214f;
+ *((unsigned long *)&__m128i_result[0]) = 0xc31b63d846ebc810;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c
new file mode 100644
index 0000000..e4afc82
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe01fe01fe01fe01;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fe01fe01;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000200020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6a5d5b056f2f4978;
+ *((unsigned long *)&__m128i_op0[0]) = 0x17483c07141b5971;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd4bade5e2e902836;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x345002920f3017d6;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000c0010000a186;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00067fff0002a207;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0002;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_result[0]) = 0x05fafe0101fe000e;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc1f03e1042208410;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00f0001000000010;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf8e1a03affffe3e2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3a80613fda5dcb4a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x93f0b81a914c003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000051649b6;
+ *((unsigned long *)&__m128i_result[0]) = 0xd2f005e44bb43416;
+ __m128i_out = __lsx_vmulwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001fffe00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff000f0008d3c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff0016fff8d3d;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff000f0008d3c;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff0016fff8d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0xe10000004deb2610;
+ *((unsigned long *)&__m128i_result[0]) = 0xe101e0014dec4089;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x111110ff11111141;
+ *((unsigned long *)&__m128i_op1[0]) = 0x11111131111116a6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2028000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001001100110068;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd400c02000002acf;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf4000020c4000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x6453f5e01d6e5000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000fdec000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc5c534920000c4ed;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op0[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op1[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000021100000211;
+ *((unsigned long *)&__m128i_result[0]) = 0xfb141d31fb141d31;
+ __m128i_out = __lsx_vmulwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f800000976801fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x837c1ae57f8012ed;
+ *((unsigned long *)&__m128i_result[1]) = 0x976801fd6897fe02;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8012ec807fed13;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000100010001fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0909090900000909;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0909090909090909;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a80613fda5dcb4a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x93f0b81a914c003b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1e242e4d68dc0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x2ff8fddb7ae20000;
+ __m128i_out = __lsx_vmulwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff000ff6220c0c1;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffe8081000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c
new file mode 100644
index 0000000..346f031
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c
@@ -0,0 +1,245 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0xff01ff01ff01ff01;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01ff01ff01fc10;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0042003e0042002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffc0001fffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffbeffc2ffbeffd1;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80000000fff80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80000000fff80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff8004000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff8607db959f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff0cff78ff96ff14;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000008a0000008a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000008900000009;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000043c5ea7b6;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000008fc4ef7b4;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffff46;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffe00000002;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff46000000ba;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf8f8372f752402ee;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80044def00000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007f8449a19084;
+ *((unsigned long *)&__m128i_result[0]) = 0x49a210000000ff00;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfd000000fb00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fe00f8000700;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xfdfef9ff0efff900;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7efefefe82010201;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x7afafaf88a050a05;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcda585aebbb2836a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcda585aebbb2836a;
+ *((unsigned long *)&__m128i_result[1]) = 0xd78cfd70b5f65d76;
+ *((unsigned long *)&__m128i_result[0]) = 0x5779108fdedda7e4;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0xd48acbfe13102acf;
+ *((unsigned long *)&__m128i_result[0]) = 0xf4af70d0c4000000;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000056;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffff86;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_result[0]) = 0xf8e1a03affffe3e2;
+ __m128i_out = __lsx_vmulwev_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c
new file mode 100644
index 0000000..6eea49a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c
@@ -0,0 +1,272 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000006;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0100010000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0100010000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67157b5100005000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x387c7e0a133f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000004870ba0;
+ __m128i_out = __lsx_vmulwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefe000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000155;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff8001ffff8001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ff0010000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3ff0010000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x440ef000440ef000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4400000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0f8d33000f8d3300;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003b80000000000;
+ __m128i_out = __lsx_vmulwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0018001800180018;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0018001800180018;
+ *((unsigned long *)&__m128i_op1[1]) = 0x85bd6b0e94d89998;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd83c8081ffff808f;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffc45a851c40c18;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3e1f321529232736;
+ *((unsigned long *)&__m128i_op1[0]) = 0x161d0c373c200826;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003f8000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff000000007fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffdfffdf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c6fde000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fef01000f27ca;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000010000010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101000001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000ffef0010000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffe0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000005452505;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000044525043c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fc03fc000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc03fc040;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7f00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000400028000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc110000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc00d060000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf047ef0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff100000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c
new file mode 100644
index 0000000..f3e4e03
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c
@@ -0,0 +1,282 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004e005500060031;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff870068fff5ffb3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfa31dfa21672e711;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1304db85e468073a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000150000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffeffff001effff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffff1a0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000f00f;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x4);
+ *((unsigned long *)&__m128i_op0[1]) = 0xe2560afe9c001a18;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe2560afe9c001a18;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000d82;
+ *((unsigned long *)&__m128i_result[0]) = 0x046a09ec009c0000;
+ __m128i_out = __lsx_vmulwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80ffffffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f3f018000000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf0fd800080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000a00028004000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000005a00000228;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff9ee000004ec;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f54e0ab00000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00e4880080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080810080808100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff011fb11181d8ea;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80ff800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe00fe000200fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe000200fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x00fd02fe00002302;
+ *((unsigned long *)&__m128i_result[0]) = 0x007ffd0200000000;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffe0001fffe0001;
+ __m128i_out = __lsx_vmulwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x685670d27e00682a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x14ccc631eb3339ce;
+ *((unsigned long *)&__m128i_result[0]) = 0x685670d197a98f2e;
+ __m128i_out = __lsx_vmulwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffc0ffc0003f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffc0ffc0003f003f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000400000004c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007770ffff941d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000ffff000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000077529b522400;
+ __m128i_out = __lsx_vmulwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000111111312;
+ *((unsigned long *)&__m128i_result[0]) = 0x2222272111111410;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffff800000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff0015172b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffffff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000600000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000c6c7;
+ *((unsigned long *)&__m128i_result[0]) = 0x8d8d8d8d8d8cc6c6;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a0000000a000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f7f00007f7f7500;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3b42017f3a7f7f01;
+ *((unsigned long *)&__m128i_result[1]) = 0x04faf60009f5f092;
+ *((unsigned long *)&__m128i_result[0]) = 0x04fafa9200000000;
+ __m128i_out = __lsx_vmulwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c
new file mode 100644
index 0000000..9f5702e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c
@@ -0,0 +1,308 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff020000fff4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001ee100000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f5ec0a0feefa0b0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff02d060;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_h_bu_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80000000fff8fff8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80000000fff80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000100;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000004a294b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000006d04bc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x55aa55aa55aa55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaa55555655aaaaa8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ef4002d21fc7001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x28bf02d1ec6a35b2;
+ *((unsigned long *)&__m128i_result[1]) = 0x2a7b7c9260f90ee2;
+ *((unsigned long *)&__m128i_result[0]) = 0x1b1c6cdfd57f5736;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000004040504;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000004040504;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_d_wu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000feff01;
+ *((unsigned long *)&__m128i_result[0]) = 0x00feff0100000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010202050120;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010102020202;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0982e2daf234ed87;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0ae3072529fbfe78;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x030804010d090107;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1313131313131313;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1313131313131313;
+ *((unsigned long *)&__m128i_result[1]) = 0x0039d21e3229d4e8;
+ *((unsigned long *)&__m128i_result[0]) = 0x6d339b4f3b439885;
+ __m128i_out = __lsx_vmulwod_q_du_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vneg.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vneg.c
new file mode 100644
index 0000000..9441ba5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vneg.c
@@ -0,0 +1,321 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffeffffffff;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffffffc;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff00ffffff01;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000fff3;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff0001ffffff0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100000101;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100ff010101f6;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100010000000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffffeff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffbff8888080a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x080803ff807ff7f9;
+ *((unsigned long *)&__m128i_result[1]) = 0x010105017878f8f6;
+ *((unsigned long *)&__m128i_result[0]) = 0xf8f8fd0180810907;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000300000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffdffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffeffff;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x441ba9fcffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x181b2541ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xbbe5560400010001;
+ *((unsigned long *)&__m128i_result[0]) = 0xe7e5dabf00010001;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000060a3db;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa70594c000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ff9f5c25;
+ *((unsigned long *)&__m128i_result[0]) = 0x58fa6b4000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vneg_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000008000001e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff7fffffe2;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_result[0]) = 0x377b810912c0e000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffc00001ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x003ffffe00800000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vneg_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x087c000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000087c;
+ *((unsigned long *)&__m128i_result[1]) = 0xf784000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffff784;
+ __m128i_out = __lsx_vneg_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vneg_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnor.c
new file mode 100644
index 0000000..a7a3acc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnor.c
@@ -0,0 +1,109 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x00000000fff8fff8;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00000000fff80000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x00000000fff8fff8;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00000000fff80000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffff00070007;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffff0007ffff;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xce23d33e43d9736c;
+ *((unsigned long*)& __m128i_op0[0]) = 0x63b2ac27aa076aeb;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x31dc2cc1bc268c93;
+ *((unsigned long*)& __m128i_result[0]) = 0x9c4d53d855f89514;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x000000000000000c;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xfffffffffffffff3;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000400080003fff;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000bc2000007e04;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000400080003fff;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000bc2000007e04;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffbfff7fffc000;
+ *((unsigned long*)& __m128i_result[0]) = 0xffff43dfffff81fb;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x021b7d24c9678a35;
+ *((unsigned long*)& __m128i_op0[0]) = 0x030298a6a1030a49;
+ *((unsigned long*)& __m128i_op1[1]) = 0x5252525252525252;
+ *((unsigned long*)& __m128i_op1[0]) = 0x5252525252525252;
+ *((unsigned long*)& __m128i_result[1]) = 0xada4808924882588;
+ *((unsigned long*)& __m128i_result[0]) = 0xacad25090caca5a4;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfffefffe0000ff18;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vnor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnori.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnori.c
new file mode 100644
index 0000000..a07a02a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vnori.c
@@ -0,0 +1,91 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x00000000ffff0000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00000000ffff0000;
+ *((unsigned long*)& __m128i_result[1]) = 0xcccccccc0000cccc;
+ *((unsigned long*)& __m128i_result[0]) = 0xcccccccc0000cccc;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0x33);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0xa6);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x3e035e51522f0799;
+ *((unsigned long*)& __m128i_result[1]) = 0x9292929292929292;
+ *((unsigned long*)& __m128i_result[0]) = 0x8090808280909002;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0x6d);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000000ffc2f;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00201df000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x3838383838300010;
+ *((unsigned long*)& __m128i_result[0]) = 0x3818200838383838;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0xc7);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long*)& __m128i_op0[0]) = 0x2020202020207f7f;
+ *((unsigned long*)& __m128i_result[1]) = 0x5d5d5d5d5d5d5d5d;
+ *((unsigned long*)& __m128i_result[0]) = 0x5d5d5d5d5d5d0000;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0xa2);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long*)& __m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0x7f);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long*)& __m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long*)& __m128i_result[1]) = 0x1313131313131313;
+ *((unsigned long*)& __m128i_result[0]) = 0x1313131313131313;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0xec);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x9d9d9d9d9d9d9d9d;
+ *((unsigned long*)& __m128i_result[0]) = 0x9d9d9d9d9d9d9d9d;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0x62);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00f525682ffd27f2;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00365c60317ff930;
+ *((unsigned long*)& __m128i_result[1]) = 0xe500c085c000c005;
+ *((unsigned long*)& __m128i_result[0]) = 0xe5c1a185c48004c5;
+ __m128i_out = __lsx_vnori_b(__m128i_op0,0x1a);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vor.c
new file mode 100644
index 0000000..537a1bb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vor.c
@@ -0,0 +1,169 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[1]) = 0x7e44bde9b842ff23;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00011e80007edff8;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long*)& __m128i_op1[0]) = 0xfffc001fffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xfffc001fffffffff;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000200010;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long*)& __m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long*)& __m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long*)& __m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long*)& __m128i_result[1]) = 0x4f804f804f804f80;
+ *((unsigned long*)& __m128i_result[0]) = 0x4f804f804f804f80;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x3e035e51522f0799;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x3e035e51522f0799;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x3e035e51522f0799;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long*)& __m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfff8000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xfff8000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xfff8000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffff80005613;
+ *((unsigned long*)& __m128i_op0[0]) = 0x81000080806b000b;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffff00011cf0c569;
+ *((unsigned long*)& __m128i_op1[0]) = 0xc0000002b0995850;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffff9cf0d77b;
+ *((unsigned long*)& __m128i_result[0]) = 0xc1000082b0fb585b;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfffffffffffbfff8;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0xfffffffffffbfffb;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x0001ffff0101ffff;
+ *((unsigned long*)& __m128i_result[0]) = 0x0001ffff0001ffff;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffc105d1aa;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffbc19ecca;
+ *((unsigned long*)& __m128i_op1[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long*)& __m128i_op1[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long*)& __m128i_result[1]) = 0xfffffffff9bffbfb;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffdffdfb;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vori.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vori.c
new file mode 100644
index 0000000..8a6e035
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vori.c
@@ -0,0 +1,123 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x8282828282828282;
+ *((unsigned long*)& __m128i_result[0]) = 0x8282828282828282;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x82);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x7505853d654185f5;
+ *((unsigned long*)& __m128i_op0[0]) = 0x01010000fefe0101;
+ *((unsigned long*)& __m128i_result[1]) = 0x7545c57d6541c5f5;
+ *((unsigned long*)& __m128i_result[0]) = 0x41414040fefe4141;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x40);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000c2f90000bafa;
+ *((unsigned long*)& __m128i_op0[0]) = 0x8000c2fa8000c2fa;
+ *((unsigned long*)& __m128i_result[1]) = 0x7474f6fd7474fefe;
+ *((unsigned long*)& __m128i_result[0]) = 0xf474f6fef474f6fe;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x74);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long*)& __m128i_result[0]) = 0x3d3d3d3d3d3d3d3d;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x3d);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long*)& __m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long*)& __m128i_result[1]) = 0xfffffadffedbfefe;
+ *((unsigned long*)& __m128i_result[0]) = 0x5f5f7bfedefb5ada;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x5a);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x38);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0d1202e19235e2bc;
+ *((unsigned long*)& __m128i_op0[0]) = 0xea38e0f75f6e56d1;
+ *((unsigned long*)& __m128i_result[1]) = 0x2f3626e7b637e6be;
+ *((unsigned long*)& __m128i_result[0]) = 0xee3ee6f77f6e76f7;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x26);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0003c853c843c87e;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0003c853c843c87e;
+ *((unsigned long*)& __m128i_result[1]) = 0xd6d7ded7ded7defe;
+ *((unsigned long*)& __m128i_result[0]) = 0xd6d7ded7ded7defe;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0xd6);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0xfffe0000fffe0000;
+ *((unsigned long*)& __m128i_result[1]) = 0x7777777777777777;
+ *((unsigned long*)& __m128i_result[0]) = 0xffff7777ffff7777;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x77);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x55);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xd454545454545454;
+ *((unsigned long*)& __m128i_result[0]) = 0xd454545454545454;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x54);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long*)& __m128i_result[0]) = 0x4f4f4f4f4f4f4f4f;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x4f);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x8a8a8a8a8a8a8a8a;
+ *((unsigned long*)& __m128i_result[0]) = 0x8a8a8a8a8a8a8a8a;
+ __m128i_out = __lsx_vori_b(__m128i_op0,0x8a);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vorn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vorn.c
new file mode 100644
index 0000000..bb59bc3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vorn.c
@@ -0,0 +1,109 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long*)& __m128i_op0[0]) = 0x000100010001fffe;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x00d3012b015700bb;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00010000ffca0070;
+ *((unsigned long*)& __m128i_result[1]) = 0xff2cfed4fea8ff44;
+ *((unsigned long*)& __m128i_result[0]) = 0xfffeffff0035ff8f;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00fe00fe00fe00fe;
+ *((unsigned long*)& __m128i_op0[0]) = 0x00fe00fe00fe0045;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0x00fe00fe00fe00fe;
+ *((unsigned long*)& __m128i_result[0]) = 0x00fe00fe00fe0045;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000010000010101;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0101000001000100;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000010000010101;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0101000001000100;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000002;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000002;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long*)& __m128i_op0[0]) = 0xe4423f7b769f8ffe;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00050eb00000fffa;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000f8a50000f310;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00bbfff7fffffff7;
+ *((unsigned long*)& __m128i_op0[0]) = 0xffffffff008ff820;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0001000100010012;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00000000ffe1ffc0;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffff009ff83f;
+ __m128i_out = __lsx_vorn_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackev.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackev.c
new file mode 100644
index 0000000..030e87f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackev.c
@@ -0,0 +1,452 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff000000ff;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf4b6f3f52f4ef4a8;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00f900d7003d00e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x003e00d100de002b;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc2f9bafac2fac2fa;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbdf077eee7e20468;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe3b1cc6953e7db29;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000e7e20468;
+ *((unsigned long *)&__m128i_result[0]) = 0xc2fac2fa53e7db29;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf8f8e018f8f8e810;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf8f8f008f8f8f800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000e0180000e810;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000f0080000f800;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1211100f11100f0e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x100f0e0d0f0e0d0c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f000d200e000c20;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xe3e3e3e3e3e3e3e3;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007ffe00007ffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001c00ffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007f7f00007f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x000001000f00fe00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000017fff00fe7f;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000f0009d3c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000016fff9d3d;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff000f0008d3c;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff0016fff8d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000000003c3c;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff0101ffff3d3d;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000958affff995d;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100013fa0;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffefffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffefffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffefefffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002fffefffd0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1202120212021202;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1202120212021202;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0202fe02fd020102;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5a6f5c53ebed3faa;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa36aca4435b8b8e1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5a6f5c53ebed3faa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa36aca4435b8b8e1;
+ *((unsigned long *)&__m128i_result[1]) = 0x5c535c533faa3faa;
+ *((unsigned long *)&__m128i_result[0]) = 0xca44ca44b8e1b8e1;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x77c03fd640003fc6;
+ *((unsigned long *)&__m128i_result[1]) = 0x04c0044a0400043a;
+ *((unsigned long *)&__m128i_result[0]) = 0x04c004d6040004c6;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000006362ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000d0000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000dffff000d;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000002002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200020002;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_result[1]) = 0x2080208020802080;
+ *((unsigned long *)&__m128i_result[0]) = 0x2080208020802080;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000001b0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000001b0000;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000053a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff9000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc000400000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffc000400000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001f00000000;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe593c8c4e593c8c4;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080000080800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x9380c4009380c400;
+ __m128i_out = __lsx_vpackev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc2007aff230027;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080005eff600001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01017f3c00000148;
+ *((unsigned long *)&__m128i_op1[0]) = 0x117d7f7b093d187f;
+ *((unsigned long *)&__m128i_result[1]) = 0xff23002700000148;
+ *((unsigned long *)&__m128i_result[0]) = 0xff600001093d187f;
+ __m128i_out = __lsx_vpackev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002711250a27112;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00d2701294027112;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff7112ffff7112;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff7012ffff7112;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_op1[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op1[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_result[1]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_result[0]) = 0x020310d0c0030220;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf8e1a03affffe3e2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf8e1a03affffe3e2;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000efffefff;
+ *((unsigned long *)&__m128i_result[0]) = 0xa03aa03ae3e2e3e2;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x02b010f881a281a2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b169bbb8140001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000010f8000081a2;
+ *((unsigned long *)&__m128i_result[0]) = 0x000069bb00000001;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackod.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackod.c
new file mode 100644
index 0000000..783eeda
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpackod.c
@@ -0,0 +1,461 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000020100;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffc00000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x03574e3a03574e3a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000001fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000003a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000015;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_op1[1]) = 0x803f800080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe0404041c0404040;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_result[0]) = 0x803f800080000000;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe80000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe000000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80ffffffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe80ff80ffff0000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x11000f2000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f000d2000000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f8000004f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f804f804f804f80;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000c000ffffc000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000006f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000c00000000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffcfffcfffc;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2222272011111410;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2222272011111410;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffef8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffdfffdfffdffee0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffdfffdf;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010100000100000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100000101000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000000010;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3918371635143312;
+ *((unsigned long *)&__m128i_result[1]) = 0x21011f3f193d173b;
+ *((unsigned long *)&__m128i_result[0]) = 0xff39ff37ff35ff33;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7ff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff3fbfffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff80806362;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00008080;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000100000000fc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000100000000fc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0404050404040404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0404050404040404;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000004040504;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000004040504;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000807f80808000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80006b0000000b00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000807f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80006b0080808080;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000400000004000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00004000ffffffff;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000080008;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffefffe00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffe00000000;
+ __m128i_out = __lsx_vpackod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x00cd006300cd0063;
+ *((unsigned long *)&__m128i_result[0]) = 0x00cd006300cd0063;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03aa558e1d37b5a1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff80fd820000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000084d12ce;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2e34594c3b000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x002e0059003b0000;
+ __m128i_out = __lsx_vpackod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001e001e001e001e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001e001e001e001e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffaeffaeffaeffae;
+ *((unsigned long *)&__m128i_result[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_result[0]) = 0x001effae001effae;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000440efffff000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000003b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000440efffff000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff2356fe165486;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5efeb3165bd7653d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff2356fe165486;
+ __m128i_out = __lsx_vpackod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000cecd00004657;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000c90000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00019d9a00008cae;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vpackod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpcnt.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpcnt.c
new file mode 100644
index 0000000..66982d8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpcnt.c
@@ -0,0 +1,350 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x7);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000003c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000800000008;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0701000007010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0701000000000000;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x807f7f8000ffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff00feff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0107070100080800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080800070800;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_result[1]) = 0x0303030303030303;
+ *((unsigned long *)&__m128i_result[0]) = 0x0303030303030303;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_op0[0]) = 0x803f800080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000009;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000000010000;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0ba00ba00ba00ba0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0ba00ba00ba011eb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000a0000000a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000a0000000d;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfbfbfb17fbfb38ea;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfbfb47fbfbfb0404;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000029;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffbfc0ffffbfc0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000032;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003000900050007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0800080008000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe160065422d476da;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000d00000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000b00000010;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000000;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010100000101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0103000201030002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000008;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000200000001e;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000200000001e;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbbe5560400010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe7e5dabf00010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000b000500010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x000b000c00010001;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001f0000001f;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_h (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000600007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000008ffffa209;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000016;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000467fef81;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000013;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_d (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000fe03fe01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fe01fe01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000007020701;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000007010701;
+ __m128i_out = __lsx_vpcnt_b (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b1b106b8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000120000000d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000e0000000e;
+ __m128i_out = __lsx_vpcnt_w (__m128i_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickev.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickev.c
new file mode 100644
index 0000000..58591f1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickev.c
@@ -0,0 +1,362 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc2409edab019323f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x460f3b393ef4be3a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x460f3b393ef4be3a;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0004007c00fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000fc0000;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vpickev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffefefefe;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vpickev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_op0[0]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4811fda96793b23a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8f10624016be82fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfda9b23a624082fd;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xaaaaffebcfb748e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfd293eab528e7ebe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffeb48e03eab7ebe;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff7;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff00010000fff;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000120002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x2000200000013fa0;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000013fa0;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000f7d1000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x773324887fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000017161515;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000095141311;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000017fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x1716151595141311;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[0]) = 0x4040404040404040;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000dfa6e0c6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000d46cdc13;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ef400ad21fc7081;
+ *((unsigned long *)&__m128i_op1[0]) = 0x28bf0351ec69b5f2;
+ *((unsigned long *)&__m128i_result[1]) = 0xdfa6e0c6d46cdc13;
+ *((unsigned long *)&__m128i_result[0]) = 0x21fc7081ec69b5f2;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x04c0044a0400043a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04c004d6040004c6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[1]) = 0x044a043a04d604c6;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000400040004;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001b4a00007808;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fc03fc000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fc03fc000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fc03fc000000004;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffffffff;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000103030102ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010102ffff;
+ __m128i_out = __lsx_vpickev_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x3b5eae24ab7e3848;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000009c83e21a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000022001818;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000e21a00001818;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f4f4f4f4f4f4f4f;
+ __m128i_out = __lsx_vpickev_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickod.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickod.c
new file mode 100644
index 0000000..74269e31
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickod.c
@@ -0,0 +1,336 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000001;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf436f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080000000000000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff51cf8da;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffd6040188;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000101fffff8b68;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000b6fffff8095;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffff51cffffd604;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xa);
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff0cffffff18;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefffefffeff6a0c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc2f9bafac2fac2fa;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffefefe6a;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c2bac2c2;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x11000f200f000d20;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000805;
+ *((unsigned long *)&__m128i_op0[0]) = 0x978d95ac768d8784;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000408;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff91fffffff5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff00650001ffb0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffff0001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ca02f854;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ca0200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ca0200000000;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000c6c6ee22;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c6c62e8a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000c6c6ee22;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c6c62e8a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e1d001b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff000000ff;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0006000000040000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363636363636363;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fc03fc000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fc03fc000000003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f7f1fd800000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f1f00003f3f0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f3f00007f1f0000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff9f017f1fa0b199;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1197817fd839ea3e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000033;
+ *((unsigned long *)&__m128i_result[1]) = 0xff011fb11181d8ea;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080808000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffefffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_result[1]) = 0x67ebb2ebc884ed3f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003ddc;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010000;
+ __m128i_out = __lsx_vpickod_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vpickod_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c
new file mode 100644
index 0000000..acca2be
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c
@@ -0,0 +1,488 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x7);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x4);
+ int_result = 0x0000000000000000;
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01fc020000fe0100;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x7);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000463fd2902d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5ccd54bbfcac806c;
+ unsigned_int_result = 0x00000000000000ac;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x697eba2bedfa9c82;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd705c77a7025c899;
+ unsigned_int_result = 0x000000000000edfa;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0400040004000400;
+ unsigned_int_result = 0x0000000000000400;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007d3ac600;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x7);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dffbfff00000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0200400000000001;
+ unsigned_int_result = 0x0000000000000001;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003fffffff;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001ffffffff;
+ long_int_result = 0x00000001ffffffff;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00a6ffceffb60052;
+ unsigned_int_result = 0x0000000000000084;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xa);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xc);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ unsigned_int_result = 0x00000000ffffffff;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ long_int_result = 0xffffffffffffffff;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ unsigned_long_int_result = 0x3f8000003f800000;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0bd80bd80bd80bd8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0bd80bd80bd80bd8;
+ unsigned_long_int_result = 0x0bd80bd80bd80bd8;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x8);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000c0000bd49;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000c7fff000c;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xb);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000100c6ffef10c;
+ unsigned_int_result = 0x00000000000000ff;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020207f7f;
+ unsigned_int_result = 0x0000000020202020;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003dbe88077c78c1;
+ int_result = 0x0000000000003a24;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ unsigned_int_result = 0x00000000000000ff;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x9);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xb);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffe080f6efc100f7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xefd32176ffe100f7;
+ int_result = 0x0000000000002176;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ long_int_result = 0x0000000000000000;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ int_result = 0x0000000000000002;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80008000ec82ab51;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000800089e08000;
+ int_result = 0x0000000089e08000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6453f5e01d6e5000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fdec000000000;
+ int_result = 0x000000001d6e5000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6453f5e01d6e5000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fdec000000000;
+ int_result = 0x0000000001d6e5000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xe);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8d78336c83652b86;
+ *((unsigned long *)&__m128i_op0[0]) = 0x39c51f389c0d6112;
+ int_result = 0x000000009c0d6112;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ unsigned_int_result = 0x000000000000857a;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d2449678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a621030a49;
+ int_result = 0x00000000ffff8a35;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001effae001effae;
+ unsigned_int_result = 0x000000000000001e;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xe);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8d78336c83652b86;
+ *((unsigned long *)&__m128i_op0[0]) = 0x39c51f389c0d6112;
+ int_result = 0x000000009c0d6112;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ unsigned_int_result = 0x000000000000857a;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d2449678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a621030a49;
+ int_result = 0x00000000ffff8a35;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001effae001effae;
+ unsigned_int_result = 0x000000000000001e;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x8);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x000000000000001e;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_int_result = 0x0000000000000000;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x5);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003ddc5dac;
+ long_int_result = 0x000000003ddc5dac;
+ long_int_out = __lsx_vpickve2gr_d (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6453f5e01d6e5000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fdec000000000;
+ int_result = 0x000000001d6e5000;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xe);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ int_result = 0x00000000ffffffff;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8d78336c83652b86;
+ *((unsigned long *)&__m128i_op0[0]) = 0x39c51f389c0d6112;
+ int_result = 0x000000009c0d6112;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ unsigned_int_result = 0x000000000000857a;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x1);
+ ASSERTEQ_int (__LINE__, int_out, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d2449678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a621030a49;
+ int_result = 0x00000000ffff8a35;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x4);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001effae001effae;
+ unsigned_int_result = 0x000000000000001e;
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0674c8868a74fc80;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfdce8003090b0906;
+ int_result = 0x00000000090b0906;
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_result = 0x0000000000000000;
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x3);
+ ASSERTEQ_int (__LINE__, int_result, int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fd1654860000;
+ unsigned_int_result = 0x00000000000000ff;
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xc);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ unsigned_long_int_result = 0x0000000000000000;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f4f00004f4f0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f4f00004f4f0000;
+ unsigned_int_result = 0x000000004f4f0000;
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000120000000d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000e0000000e;
+ unsigned_long_int_result = 0x0000000e0000000e;
+ unsigned_long_int_out = __lsx_vpickve2gr_du (__m128i_op0, 0x0);
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpremi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpremi.c
new file mode 100644
index 0000000..ef0ad67
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vpremi.c
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c
new file mode 100644
index 0000000..a5f02b1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c
@@ -0,0 +1,212 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_result;
+
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
+ long int long_int_out, long_int_result;
+ unsigned int unsigned_int_out, unsigned_int_result;
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
+
+ int_op0 = 0x0000000059815d00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0400040004000400;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ long_op0 = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000400;
+ __m128i_out = __lsx_vreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ long_op0 = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f8000003f800000;
+ __m128i_out = __lsx_vreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000020202020;
+ *((unsigned long *)&__m128i_result[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_result[0]) = 0x2020202020202020;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff000000ff;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ long_op0 = 0x000000007ff00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007ff00000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007ff00000;
+ __m128i_out = __lsx_vreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ long_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_d (long_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x000000000000001e;
+ *((unsigned long *)&__m128i_result[1]) = 0x1e1e1e1e1e1e1e1e;
+ *((unsigned long *)&__m128i_result[0]) = 0x1e1e1e1e1e1e1e1e;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_w (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_h (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_op0 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplgr2vr_b (int_op0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplve.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplve.c
new file mode 100644
index 0000000..463adb4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplve.c
@@ -0,0 +1,300 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000045eef14fe8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000000000ac;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x78c00000ff000000;
+ int_op1 = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0xff000000ff000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff000000ff000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x803f800080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe0404041c0404040;
+ int_op1 = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_result[0]) = 0xe0404041e0404041;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffffffff0001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ int_op1 = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000020006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffb4ff;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffb4ff;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000020202020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x000000007ff00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000020006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffff4;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff4;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ffff00ff00ff00;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00ff00ff00ff00;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ int_op1 = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001b;
+ int_op1 = 0xffffffff89e08000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001b0000001b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001b0000001b;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefdbffefdfe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefeeffef7fefe;
+ int_op1 = 0xffffffff9c0d6112;
+ *((unsigned long *)&__m128i_result[1]) = 0xbffefdfebffefdfe;
+ *((unsigned long *)&__m128i_result[0]) = 0xbffefdfebffefdfe;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff800000ff800000;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff800000ff800000;
+ __m128i_out = __lsx_vreplve_w (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd27db010d20fbf;
+ int_op1 = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fbf0fbf0fbf0fbf;
+ *((unsigned long *)&__m128i_result[0]) = 0x0fbf0fbf0fbf0fbf;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0x00000000090b0906;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_b (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ int_op1 = 0xffffffffffff8a35;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x05dfffc3ffffffc0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000047fe2f0;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000047fe2f0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000047fe2f0;
+ __m128i_out = __lsx_vreplve_d (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffe011df03e;
+ int_op1 = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf03ef03ef03ef03e;
+ *((unsigned long *)&__m128i_result[0]) = 0xf03ef03ef03ef03e;
+ __m128i_out = __lsx_vreplve_h (__m128i_op0, int_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplvei.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplvei.c
new file mode 100644
index 0000000..a81be76
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vreplvei.c
@@ -0,0 +1,293 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000055555501;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000005555555554;
+ __m128i_out = __lsx_vreplvei_d (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000036280000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x42a0000042a02000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x697eba2bedfa9c82;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd705c77a7025c899;
+ *((unsigned long *)&__m128i_result[1]) = 0xedfaedfaedfaedfa;
+ *((unsigned long *)&__m128i_result[0]) = 0xedfaedfaedfaedfa;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000300000003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000a0a08000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5350a08000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000800080008000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80010009816ac5de;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8001000184000bd8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0bd80bd80bd80bd8;
+ *((unsigned long *)&__m128i_result[0]) = 0x0bd80bd80bd80bd8;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_d (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1149a96eb1a08000;
+ *((unsigned long *)&__m128i_result[1]) = 0xb1a08000b1a08000;
+ *((unsigned long *)&__m128i_result[0]) = 0xb1a08000b1a08000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080808080808;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_d (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffcc9a989a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_result[1]) = 0xadadadadadadadad;
+ *((unsigned long *)&__m128i_result[0]) = 0xadadadadadadadad;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_d (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3131313131313131;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_d (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a753500a9fa0d06;
+ *((unsigned long *)&__m128i_result[1]) = 0x0d060d060d060d06;
+ *((unsigned long *)&__m128i_result[0]) = 0x0d060d060d060d06;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_b (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vreplvei_w (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vreplvei_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotr.c
new file mode 100644
index 0000000..c42440c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotr.c
@@ -0,0 +1,381 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2001240128032403;
+ *((unsigned long *)&__m128i_op1[0]) = 0x288b248c00010401;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffdfffefffff7ffe;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_hu (__m128i_op0, 0x5);
+ *((unsigned long *)&__m128i_op0[1]) = 0x2700000000002727;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000002727;
+ *((unsigned long *)&__m128i_op1[1]) = 0x697eba2bedfa9c82;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd705c77a7025c899;
+ *((unsigned long *)&__m128i_result[1]) = 0xc9c00000000009c9;
+ *((unsigned long *)&__m128i_result[0]) = 0x0013938000000000;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000000010000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100100000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x2000000020000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200200000;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x203e16d116de012b;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x9f009f009f009f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x9f009f009f009f00;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000004fc04f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000004fc04f80;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff000000ff00;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000958affff995d;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000de0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001f0a;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x41dfffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfbffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7bffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfbffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7bffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xf7ffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xf7feffffffffffff;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0ba00ba00ba00ba0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0ba00ba00ba011eb;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf1819b7c0732a6b6;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffb9917a6e7fffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x05d0ba0002e8802e;
+ *((unsigned long *)&__m128i_result[0]) = 0xd005e802174023d6;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000691a6c843c8fc;
+ *((unsigned long *)&__m128i_result[0]) = 0x000691a6918691fc;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000003f0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffc3ffff003e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000003dffc2;
+ *((unsigned long *)&__m128i_result[1]) = 0xc000000fc0003fff;
+ *((unsigned long *)&__m128i_result[0]) = 0xbffffff0ffffc00f;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[1]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m128i_result[0]) = 0xffefffefffefffef;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001010002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010002;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vrotr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4e3e133738bb47d2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x9c7c266e71768fa4;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001a64b345308091;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001f2f2cab1c732a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000014414104505;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1011050040004101;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a323b5430048c;
+ *((unsigned long *)&__m128i_result[0]) = 0x008f792cab1cb915;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001e03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001a64b345308091;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001f2f2cab1c732a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000780c00000;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00020000ffff0001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000b000b000b000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000b000b000b000b;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0005840100000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0005847b00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x636363633f3e47c1;
+ *((unsigned long *)&__m128i_op1[0]) = 0x41f8e080f1ef4eaa;
+ *((unsigned long *)&__m128i_result[1]) = 0xa000308000008002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0500847b00000000;
+ __m128i_out = __lsx_vrotr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotri.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotri.c
new file mode 100644
index 0000000..4ae4dbf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vrotri.c
@@ -0,0 +1,294 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000000020000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0d1bffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd915e98e2d8df4d1;
+ *((unsigned long *)&__m128i_result[1]) = 0xd0b1ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x9d519ee8d2d84f1d;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op0[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0x887c8beb969e00f2;
+ *((unsigned long *)&__m128i_result[0]) = 0x101f8b680b6f8095;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0800000008000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0800000008000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000c00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffff01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffeff400000df4;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff03fe;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe9df0000e81b;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000de00003e14;
+ *((unsigned long *)&__m128i_result[0]) = 0x00012b15ffff32ba;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80001b155b4b0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x80001b155b4b0000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffefffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffefffff;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111311111114111;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111311111112111;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff800000003;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000003f0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffc3ffff003e;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001f80007fff80;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe1ffff801f7f;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff0000ffff0000f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff02d060;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff02d060;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x27b9331b8e77ead9;
+ *((unsigned long *)&__m128i_op0[0]) = 0x58d6bf1867ace738;
+ *((unsigned long *)&__m128i_result[1]) = 0xe4cc6c9edfab6639;
+ *((unsigned long *)&__m128i_result[0]) = 0x5afc6163b39ce19e;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vrotri_d (__m128i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vrotri_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c
new file mode 100644
index 0000000..1bc27c9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c
@@ -0,0 +1,335 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefefefefefefe;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff3c992b2e;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff730f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff3c992b2e;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff730f;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_result[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000002bfd9461;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001021;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00d3012acc56f9bb;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001021;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001000;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80808080806b000b;
+ __m128i_out = __lsx_vsadd_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x3c5fffffff7fffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffeff00feff;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x40f3fa0000000000;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000008a0000008a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000008900000009;
+ *((unsigned long *)&__m128i_op1[1]) = 0x63637687636316bb;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x6363771163631745;
+ *((unsigned long *)&__m128i_result[0]) = 0x636363ec6363636c;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vsadd_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fefefe68;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c2bac2c2;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x028c026bfff027af;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000000010000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f7fff003f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7fff003f800000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000820202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fe01fc0005fff4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000820205a44;
+ *((unsigned long *)&__m128i_result[0]) = 0x013bc084078278b5;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000140001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000140001;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x67eb85b0b2ebb001;
+ *((unsigned long *)&__m128i_result[0]) = 0xc8847ef6ed3f2000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128i_op1[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff14eb54ab;
+ *((unsigned long *)&__m128i_result[0]) = 0x14ea6a002a406a00;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xce9035c49ffff570;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0xce9035c49ffff574;
+ __m128i_out = __lsx_vsadd_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000040d;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000013;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001000000ff;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000300000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000002fffffffb;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000fffb;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vadd_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c
new file mode 100644
index 0000000..67d1899
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c
@@ -0,0 +1,345 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x203e16d116de012b;
+ *((unsigned long *)&__m128i_result[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x203e16d116de012b;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffebd06fffe820c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7ffe7fff3506;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffebd06fffe820c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7ffe7fff3506;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0cffffff18;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefffefffeff6a0c;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff60ca7104649;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff790a15db63d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffff60ca710464a;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff790a15db63e;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff46;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5f675e96e29a5a60;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x5fff5e97e2ff5abf;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefffefffefffeff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000100010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001001100110068;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfeffffffffffffff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffb81a6f70;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000d48eaa1a2;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffb81ae0bf;
+ *((unsigned long *)&__m128i_result[0]) = 0x00012c9748eaffff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsadd_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000200;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000d0000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8006000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8002000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x8006000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8002000d00000014;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000014;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_h (__m128i_op0, 0x1);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000600007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000008ffffa209;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000600007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000008ffffa209;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x636363633f3e47c1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e080f1ef4eaa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000807bf0a1f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000800ecedee68;
+ *((unsigned long *)&__m128i_result[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_result[0]) = 0x41f8e880ffffffff;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ebd20000714f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00012c8a0000a58a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000e29e;
+ *((unsigned long *)&__m128i_result[0]) = 0x000259140000ffff;
+ __m128i_out = __lsx_vsadd_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffeffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffeffffffff;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_op0[0]) = 0x342caf9be55700b5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00040003ff83ff84;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00040003ff4dffca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c07e181ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x3430af9effffffff;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffa8ff9f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffffffabff99;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000100000002007d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000020001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00010000ffab001c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001ffffffadff9a;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0800080008000800;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x76f424887fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc110000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc00d060000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xc110000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff7fffffff;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfbfbfb17fbfb38ea;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfbfb47fbfbfb0404;
+ *((unsigned long *)&__m128i_result[1]) = 0xfbfbfb17fbfb3919;
+ *((unsigned long *)&__m128i_result[0]) = 0xfbfb47fbfbfb042d;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808081;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x80808080ffffffff;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00123fff00120012;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0012001200120012;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000005003a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00123fff00120012;
+ *((unsigned long *)&__m128i_result[0]) = 0x001200120017004c;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc5c534920000c4ed;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_result[0]) = 0xc5c534920000c4ed;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000aa822a79308f6;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03aa558e1d37b5a1;
+ *((unsigned long *)&__m128i_result[1]) = 0x00155044ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x03aa558e2584c86f;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a6a1030a49;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_result[0]) = 0x030298a6a1030a49;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007a8000000480;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000485000004cc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00007a8000000480;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000485000004cc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000090a00000998;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004eff6200d2ff76;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff70002800be00a0;
+ *((unsigned long *)&__m128i_result[1]) = 0x004eff6200d2ff76;
+ *((unsigned long *)&__m128i_result[0]) = 0xff70002800be00a0;
+ __m128i_out = __lsx_vsadd_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-1.c
new file mode 100644
index 0000000..cd8eefb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-1.c
@@ -0,0 +1,231 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf000000000000000;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0x03ff0101fc010102;
+ *((unsigned long *)&__m128i_result[0]) = 0x03fffffffc010102;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsat_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff8383ffff7d0d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe000ffff1fff;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff8f8da00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00ffff00;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3f8000003f800001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f8000003f800001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000000010001;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000c000ffffc000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0038d800ff000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fffe00fffffe00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0038f000ff000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fffe00fffffe00;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f0000003f0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x003f0000003f0000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0674c886fcba4e98;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfdce8003090b0906;
+ *((unsigned long *)&__m128i_result[1]) = 0x003fffc0ffc0003f;
+ *((unsigned long *)&__m128i_result[0]) = 0xffc0ffc0003f003f;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x007fffffffffffff;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000017f0a82;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000003f;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x3);
+ *((unsigned long *)&__m128i_op0[1]) = 0x8006000080020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8004000080020000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff8fffffff8;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd27db010d20fbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff00000000f;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003ff8;
+ __m128i_out = __lsx_vsat_w (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_d (__m128i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c
new file mode 100644
index 0000000..31e3919
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsat-2.c
@@ -0,0 +1,272 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffff1739ffff48aa;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff2896ffff5b88;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f3f17393f3f3f3f;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f3f283f3f3f3f3f;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000001fc00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010100000000;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffcc000b000b000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000b000b010a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f7f000b000b000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x000b000b010a000b;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000068;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001f;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffcd63ffffcd63;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffd765ffffd765;
+ *((unsigned long *)&__m128i_result[1]) = 0x1f1f1f1f1f1f1f1f;
+ *((unsigned long *)&__m128i_result[0]) = 0x1f1f1f1f1f1f1f1f;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000120000000d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vsat_bu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f00000000003f;
+ *((unsigned long *)&__m128i_result[0]) = 0x003f000000000000;
+ __m128i_out = __lsx_vsat_hu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vsat_hu (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_hu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_hu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000006de1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5f9ccf33cf600000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0007000700070000;
+ __m128i_out = __lsx_vsat_hu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff7fc01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000f;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000bd3d00000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003fff00003fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003fff00003fff;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001a323b5430048c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x008f792cab1cb915;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a323b00ffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x008f792c00ffffff;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_wu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x20);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636389038903;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636389038903;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000001ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000001ffff;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000001fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000001fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa8a74bff9e9e0070;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9e9e72ff9e9ff9ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffffffff;
+ __m128i_out = __lsx_vsat_du (__m128i_op0, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c
new file mode 100644
index 0000000..4362941
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseq.c
@@ -0,0 +1,470 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ed0008005e00a2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x007a007600150077;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ed0008005e00a2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007a007600150077;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c63636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc45a851c40c18;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfda9b23a624082fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff7f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2d1da85b7f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505853d654185f5;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01010000fefe0101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1fc000001fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1fc000001fc00000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff00000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000067400002685;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9795698585057dec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x87f82867431a1d08;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1149a96eb1a08000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffe1ffffffe1;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffe1ffffffe1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m128i_op1[0]) = 0x363d753d50155c0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f0f0f0f00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000fffe01fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000adadadad;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5b5b5b5aadadadad;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000052525253;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff00ffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00ffffffffff;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x33f5c2d7d9f5d800;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe4c23ffb002a3a22;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000044470000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0000ffff;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000005c000000b2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000007600000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffffffff;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c0dec4d1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vseq_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffbfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000048;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffeffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000090900000998;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff00ffffff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f7f7f007f7f7f00;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf2c97aaa7d8fa270;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0b73e427f7cfcb88;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff01fe03ff01fe03;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseq_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vseq_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c
new file mode 100644
index 0000000..c16a291
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vseqi.c
@@ -0,0 +1,328 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff800000c3080002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfedb27095b6bff95;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040000000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010000000100000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000000100000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000001000f00fe00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000017fff00fe7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, 9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x007ffd0001400840;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff01ff010000ff7d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000fffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffa6ff91fdd8ef77;
+ *((unsigned long *)&__m128i_op0[0]) = 0x061202bffb141c38;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fef01000f27ca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2a29282726252423;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, -1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff80ff00ff80ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0313100003131000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0313100003131000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001a0000000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_b (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000002a001a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000001a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05f5e2320605e1e2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_d (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0d060d060d060d06;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0d060d060d060d06;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff2356fe165486;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5efeb3165bd7653d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vseqi_w (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vseqi_h (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
new file mode 100644
index 0000000..4e7fcc0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
@@ -0,0 +1,394 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000007f00000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000401000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0404040404040404;
+ *((unsigned long *)&__m128i_result[0]) = 0x0404040404000404;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7efefefe82010201;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x418181017dfefdff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff81;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op2[1]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00adadad00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00adadad00000000;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc5c534920000c4ed;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xedededededededed;
+ *((unsigned long *)&__m128i_result[0]) = 0xedededededededed;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x04040403fafafafc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ff80;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000001a0000000b;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000080000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff6cffb5ff98ff6e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd7ff8dffa4ff7a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x34947b4b11684f92;
+ *((unsigned long *)&__m128i_op1[0]) = 0xee297a731e5c5f86;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000868686868686;
+ __m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000d000d000d000d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000d000d000d000d;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002bfd9461;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_op2[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x002a05a2f059094a;
+ *((unsigned long *)&__m128i_op2[0]) = 0x05ad3ba576eae048;
+ *((unsigned long *)&__m128i_result[1]) = 0x0909e0480909e048;
+ *((unsigned long *)&__m128i_result[0]) = 0x0909e0480909e048;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000c0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001ffffff29;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00000000000000c0;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000001ffffff29;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff2900000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f54e0ab00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op2[0]) = 0x010101fe0101fe87;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101fe870101fe87;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101fe8700000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x2000002000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x2000002020000020;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op2[1]) = 0x8000000100000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x8000000000000103;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010300000103;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010300000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xada4808924882588;
+ *((unsigned long *)&__m128i_op0[0]) = 0xacad25090caca5a4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_op1[0]) = 0x030298a6a1030a49;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xdfa6e0c6d46cdc13;
+ *((unsigned long *)&__m128i_op0[0]) = 0x21fc7081ec69b5f2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002c002400;
+ *((unsigned long *)&__m128i_op2[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0xffffffff0015172b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff0015172b;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0015172b;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf0003000f0003000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x021b7d2449678a35;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030298a621030a49;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op2[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_op2[0]) = 0x030298a6a1030a49;
+ *((unsigned long *)&__m128i_result[1]) = 0x021b7d24c9678a35;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f7f00007f7f0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f7f80807f7f8080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fffe0000fffe;
+ *((unsigned long *)&__m128i_op2[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffff10000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c
new file mode 100644
index 0000000..cd441b8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c
@@ -0,0 +1,348 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000030000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0xc9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004007c00fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x047c0404fc00fcfc;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x8a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff7f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x85);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff51cf8da;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffd6040188;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff01018888;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x50);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007d00c50177ac5b;
+ *((unsigned long *)&__m128i_op0[0]) = 0xac82aa88a972a36a;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000c5ac01015b;
+ *((unsigned long *)&__m128i_result[0]) = 0xaaacac88a3a9a96a;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000a0000000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000a00000009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0a0a0a000a0a0a00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0a0a0009090900;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000100;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003f8000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x003f800000000000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0xd2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x6c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x81);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000dffff000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ffffff;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x6b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5f675e96e29a5a60;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x965f5e9660e25a60;
+ *((unsigned long *)&__m128i_result[0]) = 0xff7f7fffff7f7fff;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x131211101211100f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x11100f0e100f0e0d;
+ *((unsigned long *)&__m128i_result[1]) = 0x13101213120f1112;
+ *((unsigned long *)&__m128i_result[0]) = 0x110e1011100d0f10;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0xcb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000110;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000431f851f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001011010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000043431f1f;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0xf0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xd1c0c0a5baf8f8d3;
+ *((unsigned long *)&__m128i_result[0]) = 0xecbbbbc5d5f3f3f3;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000454ffff9573;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000454ffff9573;
+ __m128i_out = __lsx_vshuf4i_b (__m128i_op0, 0xa4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0xf3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0xd2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x007c000d00400000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000003f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000007c00000040;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0xb9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff00007fff0000;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0xcd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00000000ffff;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0x93);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f7f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007f007f00007f7f;
+ __m128i_out = __lsx_vshuf4i_h (__m128i_op0, 0x58);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080808000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080808000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x8b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffdfffdfffdfffd;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefdbffefdfe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefeeffef7fefe;
+ *((unsigned long *)&__m128i_result[1]) = 0xfef7fefebffefdfe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefefefdfefefeef;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x002a001a001a000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000002a001a;
+ *((unsigned long *)&__m128i_result[0]) = 0x001a000b00000000;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x78);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x98);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000010f8000081a2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000069bb00000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001000010f8;
+ __m128i_out = __lsx_vshuf4i_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x44);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffff800;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000fffff800;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x8a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffda6e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffe3d6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xeeb1e4f4bc3763f3;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6f5edf5ada6fe3d7;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffe3d6;
+ *((unsigned long *)&__m128i_result[0]) = 0xeeb1e4f4bc3763f3;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100200001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100200001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xce23d33e43d9736c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x63b2ac27aa076aeb;
+ *((unsigned long *)&__m128i_result[1]) = 0x63b2ac27aa076aeb;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0xc8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0xc9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0xbf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x801d5de0000559e0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77eb86788eebaf00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x89582bf870006860;
+ *((unsigned long *)&__m128i_op1[0]) = 0x89582bf870006860;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vshuf4i_d (__m128i_op0, __m128i_op1, 0x94);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c
new file mode 100644
index 0000000..0fb1bc1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsigncov.c
@@ -0,0 +1,425 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00003f803f800100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x870968c1f56bb3cd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf000e001bf84df83;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff8e001ff84e703;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ca354688;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff35cab978;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6a57a30ff0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe00fe00fe00fd01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fffefe0100f6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100010000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100010000010000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000020000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000183fffffe5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000400000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000400000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff3d06ffff4506;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ffffffe7ffff800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff6fff6fff6fff6;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3f80000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3f80000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff8fff8fff8fff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52525252525252cb;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52525252525252cb;
+ *((unsigned long *)&__m128i_result[1]) = 0xaeaeaeaeaeaeae35;
+ *((unsigned long *)&__m128i_result[0]) = 0xaeaeaeaeaeaeae35;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[1]) = 0x370bdfec00130014;
+ *((unsigned long *)&__m128i_result[0]) = 0x370bdfec00130014;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002020002020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x021f3b0205150600;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000300400002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000100010040fffb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000300400002;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010040fffb;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff801c9e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000810000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x008003496dea0c61;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101030100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000004;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1ab6021f72496458;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7750af4954c29940;
+ *((unsigned long *)&__m128i_result[1]) = 0xe64afee18eb79ca8;
+ *((unsigned long *)&__m128i_result[0]) = 0x89b051b7ac3e67c0;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x441ba9fcffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x181b2541ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff81010102;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000045340a6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000028404044;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x67eb85af0000b000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc8847ef6ed3f2000;
+ __m128i_out = __lsx_vsigncov_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000103;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffc;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003ffffe00800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004001be00dc008e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff0100010001;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff9fffefff9ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x04faf60009f5f092;
+ *((unsigned long *)&__m128i_op1[0]) = 0x04fafa9200000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfc06066e00000000;
+ __m128i_out = __lsx_vsigncov_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffe0002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000667ae56;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000667ae56;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000100020002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000100020002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000100020002;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffe1ffc0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffe1ffc0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffe1ffc0;
+ __m128i_out = __lsx_vsigncov_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-1.c
new file mode 100644
index 0000000..a26eb0a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-1.c
@@ -0,0 +1,290 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x004200a000200000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff00ffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000aaaaaaaa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000aaab555b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000aaaaaaaa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000aaab555b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000ed0e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000004080;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004cff8fffde0051;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000040400000404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000040400000404;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000501000002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100000008;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x55aa55aa55aa55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaa55555655aaaaa8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00000000ffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6b6c4beb636443e3;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0507070805070708;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000085af0000b000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00017ea200002000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vsle_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0100000001000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100000001000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000005003a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-2.c
new file mode 100644
index 0000000..15c6ced
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsle-2.c
@@ -0,0 +1,444 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0005000400000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0400001001150404;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0005000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0400001001150404;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000008680f1ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0280000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffffff00000000;
+ __m128i_out = __lsx_vsle_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000036280000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x42a0000042a02000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80ff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff80000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff0600d50e9ef518;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffefffa8007c000f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000001faea9ec;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100007f01;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfbfbfb17fbfb38ea;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfbfb47fbfbfb0404;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000005fffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000003fffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000040002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000bffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f7f7f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001000100010c410;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffcafff8ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffcafff8ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000a0;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op1[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000ed0e0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000004080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000ed0e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000004080;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x8);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003030000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00fffbfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01ff1100000048;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsle_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-1.c
new file mode 100644
index 0000000..0e72a33
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-1.c
@@ -0,0 +1,258 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_b (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_b (__m128i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_b (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000200008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffff00ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffff00ffff;
+ __m128i_out = __lsx_vslei_b (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffffff00ffffff;
+ __m128i_out = __lsx_vslei_b (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff00008080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x31dc2cc1bc268c93;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c4d53d855f89514;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00000000ffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_h (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, -7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd78cfd70b5f65d76;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5779108fdedda7e4;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_w (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000001fc1a568;
+ *((unsigned long *)&__m128i_op0[0]) = 0x02693fe0e7beb077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, -6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, -4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf1819b7c0732a6b6;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffb9917a6e7fffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0037ffc8d7ff2800;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, -14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf03ef03ef03ef03e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf03ef03ef03ef03e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-2.c
new file mode 100644
index 0000000..685a1bb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslei-2.c
@@ -0,0 +1,293 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd82480697f678077;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc45a851c40c18;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1268f057137a0267;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0048137ef886fae0;
+ *((unsigned long *)&__m128i_result[1]) = 0xff000000ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00ff0000000000;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000202fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff00ff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_bu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff7a53;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffffffff;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffff0000;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001b4a00007808;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffffffff;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_hu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003900;
+ *((unsigned long *)&__m128i_op0[0]) = 0x68bcf93435ed25ed;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3a62407e03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000f0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc605c000aedd0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_wu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00250023001c001d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x309d2f342a5d2b34;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslei_du (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsll.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsll.c
new file mode 100644
index 0000000..7b8ad7d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsll.c
@@ -0,0 +1,254 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0xb9884ab93b0b80a0;
+ *((unsigned long *)&__m128i_result[0]) = 0xf11e970c68000000;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100000100010001;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00307028003f80b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0040007fff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffc0ffffff81;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff008000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0060e050007f0160;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040007fff800000;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fffffff80000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003ffd000a4000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffcffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fffd000a0000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf000800080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000a00028004000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6b9fe3649c9d6363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363bc9e8b696363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6b9fe3649c9d6363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363bc9e8b696363;
+ *((unsigned long *)&__m128i_result[1]) = 0xb9fe3640e4eb1b18;
+ *((unsigned long *)&__m128i_result[0]) = 0x800000005b4b1b18;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80001b155b4b0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00006c82;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00009b140000917b;
+ *((unsigned long *)&__m128i_result[1]) = 0x80000000fffffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xb150000000000000;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff7e00000081;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03f1e3d28b1a8a1a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03f1e3d28b1a8a1a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x18e2184858682868;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff02d060;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff02d060;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff02d06000000000;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vsll_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000200000001c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000200000001c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000200000001c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000200000001c;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000020000000c0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000020000000c0;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsll_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslli.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslli.c
new file mode 100644
index 0000000..7a77e80
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslli.c
@@ -0,0 +1,293 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xaaaaffebcfb748e0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfd293eab528e7ebe;
+ *((unsigned long *)&__m128i_result[1]) = 0xf6e91c0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x51cfd7c000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffff0ffe04000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffcfffcfffc;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc39fffff007fffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000fe00fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0e7ffffc01fffffc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000003f803f4;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000040;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff00ffff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xfcfcfc00fcfc00fc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfcfcfcfcfcfc00;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000060;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000f00f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000f00f;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000d46cdc13;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000060000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x61608654a2d4f6da;
+ *((unsigned long *)&__m128i_result[1]) = 0xfee0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc2c00ca844a8ecb4;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x36);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff010300ff0103;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf0003000f0003000;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff800fff01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff001ffe02;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd78cfd70b5f65d76;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5779108fdedda7e4;
+ *((unsigned long *)&__m128i_result[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc8847ef6ed3f2000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffff7fffffff7;
+ *((unsigned long *)&__m128i_result[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfcfcdcfcfcfcdc;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xc0c0c0c0c0c0c0c0;
+ *((unsigned long *)&__m128i_result[0]) = 0xc0c0c0c0c0c0c0c0;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe2560afe9c001a18;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe2560afe9c001a18;
+ *((unsigned long *)&__m128i_result[1]) = 0x89582bf870006860;
+ *((unsigned long *)&__m128i_result[0]) = 0x89582bf870006860;
+ __m128i_out = __lsx_vslli_w (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x841f000fc28f801f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x107c003c083c007c;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff9727ffff9727;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffe79ffffba5f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff972700000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffba5f00000000;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x20);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x101b0330eb022002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x030220020310edc0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080800080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080008000;
+ __m128i_out = __lsx_vslli_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x317fce80317fce80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf0000000f0000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslli_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_result[1]) = 0x05dfffc3ffffffc0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000047fe2f0;
+ __m128i_out = __lsx_vslli_d (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c
new file mode 100644
index 0000000..796e88c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c
@@ -0,0 +1,244 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002000000020;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000e0000000e0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fc00;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000fc00;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffeb48e03eab7ebe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc0fac01200f800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f80eac01f80ef80;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000e7e20468;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc2fac2fa53e7db29;
+ *((unsigned long *)&__m128i_result[1]) = 0xff84fff4ff84fff4;
+ *((unsigned long *)&__m128i_result[0]) = 0x00a6ffceffb60052;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x002e0059003b0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000005c000000b2;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000007600000000;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2e34594c3b000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x017001a002c80260;
+ *((unsigned long *)&__m128i_result[0]) = 0x01d8000000000000;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x09e009e009e009e0;
+ *((unsigned long *)&__m128i_result[0]) = 0x09e009e009e009e0;
+ __m128i_out = __lsx_vsllwil_h_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000040000000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000005050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0505000005050505;
+ *((unsigned long *)&__m128i_result[1]) = 0x0028280000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0028280000282800;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffc0000000000000;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff00ffffff00;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf10cf508f904fd01;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf10cf508f904fd01;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff208fffffa02;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e1d001b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001918000017160;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001514000013120;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff60ca7104649;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff790a15db63d;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffc00ffde4000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfe857400fed8f400;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1c6c80007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0038d800ff000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fffe00fffffe00;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff800000000000;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsllwil_w_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffe00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000007fff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80ff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff80000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000001fffe;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000040004000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010002000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000017fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x003fffffff800000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x57f160c4a1750eda;
+ *((unsigned long *)&__m128i_result[1]) = 0x000002bf8b062000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffd0ba876d000;
+ __m128i_out = __lsx_vsllwil_d_w (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c
new file mode 100644
index 0000000..5f46293
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c
@@ -0,0 +1,189 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f7f02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003f803f800100;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0014000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f807f807f807f80;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001030103;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020006000200060;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080805;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080805;
+ *((unsigned long *)&__m128i_result[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020002000200014;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffe0001fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000201fe01fc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000201fe01fc;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff1affff01001fe0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff1aff6d02834d70;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f800d007f803680;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100418026803800;
+ __m128i_out = __lsx_vsllwil_hu_bu (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3b2c8aefd44be966;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007658000115de0;
+ *((unsigned long *)&__m128i_result[0]) = 0x001a8960001d2cc0;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffff000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040600000406;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020202020202fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0020200000202000;
+ *((unsigned long *)&__m128i_result[0]) = 0x002020000fe02000;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000001ffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3131313131313131;
+ *((unsigned long *)&__m128i_result[1]) = 0x0313100003131000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0313100003131000;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000900000009;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000090;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000090;
+ __m128i_out = __lsx_vsllwil_wu_hu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000020000007d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000001f400000;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000280000;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fef01000e27ca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001fde020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001c4f940000;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ffffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ffffffff00;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000fffffffe000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000102020204000;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x8d78336c83652b86;
+ *((unsigned long *)&__m128i_op0[0]) = 0x39c51f389c0d6112;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001ce28f9c0;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000004e06b0890;
+ __m128i_out = __lsx_vsllwil_du_wu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-1.c
new file mode 100644
index 0000000..15c96cc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-1.c
@@ -0,0 +1,434 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0007658000115de0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001a8960001d2cc0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc000007fc00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9e801ffc7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ffff0000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff00ff0000ff;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000040100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000384;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe3f0200004003ffd;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff00ff00ff00;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000001ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f0101070101010f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000127f010116;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ffffffffff;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000ffef0010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff0000ff0000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff00000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff02000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000002a001a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001a000b00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff001a00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffc0ffc0003f;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffc0ffc0003f003f;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff0000000000ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ff00ff;
+ __m128i_out = __lsx_vslt_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0403cfcf01c1595e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x837cd5db43fc55d4;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000000040000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffefefffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffefefffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00000000ffff;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff000086bd;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ca000000c481;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00050eb00000fffa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000f8a50000f310;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000011f0000f040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0177fff0fffffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff8bc;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vslt_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001000100010c410;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x800000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ffffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_op0[0]) = 0x803f800080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001f5400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002008360500088;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000400028000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000003ff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000467fef81;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c9c9c9c63636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4eede8494f000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1817161517161514;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1615141315141312;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0fff0fff7f800fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-2.c
new file mode 100644
index 0000000..e8d69f0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslt-2.c
@@ -0,0 +1,236 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0007658000115de0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001a8960001d2cc0;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffffff00ffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ffffff;
+ __m128i_out = __lsx_vslt_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vslt_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff359f358;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffff359f358;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffff00ff00;
+ __m128i_out = __lsx_vslt_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x317fce80317fce80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fffe0000fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vslt_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007658000115de0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001a8960001d2cc0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80ffffffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000320;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007730;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000101010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4050000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636163636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslt_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000145ad;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000300003e6e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00005dcbe7e830c0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03f21e0114bf19da;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5e695e95e1cb5a01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0313100003131000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0313100003131000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000010a7;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000046ebaa2c;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf1f1f1f1865e65a1;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00050eb00000fffa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000f8a50000f310;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslt_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-1.c
new file mode 100644
index 0000000..5bf3ce6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-1.c
@@ -0,0 +1,328 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00feff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00feff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffff0000000000;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffefffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffefffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, 5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, 8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_b (__m128i_op0, -12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x807f7f8000ffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff00feff00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0000ffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x195f307a5d04acbb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a3a3a3b3a3a3a3a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3a3a00003a3a0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff00000000;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_h (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5ff6a0a40ea8f47c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5ff6a0a40e9da42a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004200a000200001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd82480697f678077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffe15;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffe15;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc000ffffc005;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, -5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0006000100040001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00010002ffff0105;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000ef0000000003b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa000308000008002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0500847b00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vslti_w (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000005e695e95;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5e695e96c396b402;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0103000201030002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, 7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, 14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x63636b6afe486741;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e880ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_d (__m128i_op0, -13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-2.c
new file mode 100644
index 0000000..768df52
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vslti-2.c
@@ -0,0 +1,293 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff0000ffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff0000ffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000008a0000008a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000008900000009;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff00ffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff00ffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x371fe00000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x371fe00000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000ffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbe8282a0793636d3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x793636d3793636d3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_bu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3b2c8aefd44be966;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000100000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000080000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7505445465593af1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100d6effefd0498;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00010000ffab001c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001ffffffadff9a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff7300000ca00430;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001a00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000009c83e21a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000022001818;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslti_hu (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x975ca6046e2e4889;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000235600005486;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000b31600006544;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_wu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000007e8a60;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001edde;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0aa077b7054c9554;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40c7ee1f38e4c4e8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6b75948a91407a42;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0b5471b633e54fde;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vslti_du (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsra.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsra.c
new file mode 100644
index 0000000..fd7c22a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsra.c
@@ -0,0 +1,344 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ed0008005e00a2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007a007600150077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0003000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0007007f03fe0000;
+ __m128i_out = __lsx_vsra_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe001ffffe001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe001ffffe001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fc000003fc00000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fc000003fc00000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fffc00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x85bd6b0e94d89998;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd83c8081ffff8080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x85bd6b0e94d89998;
+ *((unsigned long *)&__m128i_result[0]) = 0xd83c8081ffff8080;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbddaa86803e33c2a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_op1[0]) = 0xbddaa86803e33c2a;
+ *((unsigned long *)&__m128i_result[1]) = 0xff0600d50e9ef518;
+ *((unsigned long *)&__m128i_result[0]) = 0xffefffa8007c000f;
+ __m128i_out = __lsx_vsra_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xaaaaffebcfb748e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfd293eab528e7ebe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefff6fff80002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe0404041e0404041;
+ *((unsigned long *)&__m128i_op1[0]) = 0x803f800080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000700ff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000040004000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000700ff00000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000820000ff81;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff810000ff81;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000820000ff81;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff810000ff81;
+ __m128i_out = __lsx_vsra_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x800080007f008000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a0aa9890a0ac5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffff000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3918371635143312;
+ *((unsigned long *)&__m128i_op1[1]) = 0x21201f1e1d001b25;
+ *((unsigned long *)&__m128i_op1[0]) = 0x191817161514131d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001e8e1d8;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000e400000001;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000080008;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000fffe01fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000040002;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000c0c00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffac0a000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x801d5de0000559e0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x77eb86788eebafe1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffac00000000;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfcfcfcfcfcfc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_result[0]) = 0x5252525252525252;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3b2c8aefd44be966;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0802080408060803;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001fffe0001fff;
+ __m128i_out = __lsx_vsra_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000007f800000;
+ __m128i_out = __lsx_vsra_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000047fe2f0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000047fe2f0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fec20704;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000043fe2fc;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000001fffff;
+ __m128i_out = __lsx_vsra_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrai.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrai.c
new file mode 100644
index 0000000..2ca4f0b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrai.c
@@ -0,0 +1,258 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ca354688;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000007;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffc0ffff003f;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf6e91c0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x51cfd7c000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffd000700000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0014fff500000000;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3c600000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0f180000ffe00000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21f32eaf5b7a02c8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x407c2ca32cbd0357;
+ *((unsigned long *)&__m128i_result[1]) = 0x10f917d72d3d01e4;
+ *((unsigned long *)&__m128i_result[0]) = 0x203e16d116de012b;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x01ff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x01ff000000000000;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1268f057137a0267;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0048137ef886fae0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000490000004d;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffffffe2;
+ __m128i_out = __lsx_vsrai_w (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ffffffffff;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe80ffffffffff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffe80;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001800000039;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000049ffffffaa;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000060000000e;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000127fffffea;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0aa077b7054c9554;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40c7ee1f38e4c4e8;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_w (__m128i_op0, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fff3fff3fff3fff;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002ebf;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_w (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000190;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010058;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000100010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00f0001000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00f0001000000010;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrai_d (__m128i_op0, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vsrai_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsran.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsran.c
new file mode 100644
index 0000000..4e7c7ab
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsran.c
@@ -0,0 +1,290 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffe0001fffe;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0303020102020001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000000000201;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd82480697f678077;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0301020100000004;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff02;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3c5fffffff7fffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefffeff00feff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000e0180000e810;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000f0080000f800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000e0180000e810;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000f0080000f800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000f0f800;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff00000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100089bde;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000104000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x80044def00000001;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000100f8100002;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0ff8006f0f950;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff7a53;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000bf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000002bb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000021e79364;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000718ea657431b;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfefffffffeffda6f;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfefffffffeffe3d7;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff0000ff86;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101fe870101fe87;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101fe8700000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x353c8cc4b1ec5b09;
+ *((unsigned long *)&__m128i_op1[1]) = 0x002affd600000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcbc2723a4f12a5f8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808000000035;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff80ff00ff80ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff000ff6220c0c1;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffe8081000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff000ff6220c0c1;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffe8081000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xb110606000000000;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0037ffd40083ffe5;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001e0052001ffff9;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001effae001effae;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00df020f0078007f;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80ffa2fff0ff74;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff76ffd8ffe6ffaa;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffc105d1aa;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffbc19ecca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffe03ff63ff9bf;
+ __m128i_out = __lsx_vsran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x06d9090909090909;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0039d21e3229d4e8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6d339b4f3b439885;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000db24848;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe3bfb01fe3bfe01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe03fe3ffe01fa21;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vsran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrani.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrani.c
new file mode 100644
index 0000000..9298803
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrani.c
@@ -0,0 +1,246 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000b0000000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000201000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005000501800005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x438ff81ff81ff820;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03ff03ff03ff03ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000043;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0x78);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002020202;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000009;
+ *((unsigned long *)&__m128i_op1[1]) = 0x697eba2bedfa9c82;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd705c77a7025c899;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x03fdfffcfefe03fe;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000010001000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff00ff00ffffff;
+ __m128i_out = __lsx_vsrani_h_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f0001000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1e0200001e020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0800080008000800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040004000400040;
+ __m128i_out = __lsx_vsrani_w_d (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001ffce00016fb41;
+ *((unsigned long *)&__m128i_op0[0]) = 0x57cb857100001a46;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfbffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7bffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000150000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffeffff001effff;
+ __m128i_out = __lsx_vsrani_h_w (__m128i_op0, __m128i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x1);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2020202020207fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x01010101010101ff;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff082f000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000000000000;
+ __m128i_out = __lsx_vsrani_h_w (__m128i_op0, __m128i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_h_w (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00005dcbe7e830c0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03f21e0114bf19da;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000003f200001e01;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000014bf000019da;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005fe0300010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100010001;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x62cbf96e4acfaf40;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf0bc9a5278285a4a;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x62cbf96e4acfaf40;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0x40);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f54e0ab00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffb6d01f5f94f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001f50000;
+ __m128i_out = __lsx_vsrani_h_w (__m128i_op0, __m128i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_w_d (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x808080e280808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080636380806363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080808080638063;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000001d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000001d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0x63);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f07697100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000076971000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_w_d (__m128i_op0, __m128i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000003020302;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffff81;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000c0c00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_d_q (__m128i_op0, __m128i_op1, 0x58);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vsrani_w_d (__m128i_op0, __m128i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrani_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5847b72626ce61ef;
+ *((unsigned long *)&__m128i_op0[0]) = 0x110053f401e7cced;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5847b72626ce61ef;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005847b00011005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0005847b00000000;
+ __m128i_out = __lsx_vsrani_w_d (__m128i_op0, __m128i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrar.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrar.c
new file mode 100644
index 0000000..6a842d9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrar.c
@@ -0,0 +1,354 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffff02fff4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001300000013;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff00ff00ff00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00ff00ff00ff00;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000400000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c2bac2c2;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000003f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000003f;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f804f804f804f80;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80010001b57fc565;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8001000184000be0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x80010001b57fc565;
+ *((unsigned long *)&__m128i_result[0]) = 0x8001000184000be0;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0bd80bd80bdfffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0bd80bd80bd80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000958affff995d;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc0fffff000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000bf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000002bb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc0fffff000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff6080ffff4417;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fbf3fbf00007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000003a0000003a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000003a0000003a;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0086000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0082000000000007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0086000000040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0082000000000007;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x467f6080467d607f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0037ffc8d7ff2800;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_result[1]) = 0x001bffe4ebff9400;
+ *((unsigned long *)&__m128i_result[0]) = 0xff80000000000000;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2a29282726252423;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2a29282726252423;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000005452505;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000004442403e4;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100010001000100;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000c0c00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc00000ff800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7ffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffe4866c86;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffe4866c86;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000002000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000002000000;
+ __m128i_out = __lsx_vsrar_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f7f7f7f7f7f7f7f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1748c4f9ed1a5870;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x680485c8b304b019;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc89d7f0ff90da019;
+ *((unsigned long *)&__m128i_op1[1]) = 0x680485c8b304b019;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc89d7f0ff90da019;
+ *((unsigned long *)&__m128i_result[1]) = 0x00680486ffffffda;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff913bfffffffd;
+ __m128i_out = __lsx_vsrar_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrar_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrari.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrari.c
new file mode 100644
index 0000000..2a353d6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrari.c
@@ -0,0 +1,265 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000cb4a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000f909;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_d (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf4b6f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff5fff4002ffff5;
+ __m128i_out = __lsx_vsrari_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc0ff81000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff0ffe04000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000f3;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000f3;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fdfc0000fd03;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000017161515;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000095141311;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_d (__m128i_op0, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21201f1e19181716;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000109000000c9;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x77c0404a4000403a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77c03fd640003fc6;
+ *((unsigned long *)&__m128i_result[1]) = 0x00f0008100800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x00f0008000800080;
+ __m128i_out = __lsx_vsrari_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000006c80031;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_d (__m128i_op0, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000a6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001200100012001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080000000800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_d (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000404040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001340134013401;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001340134013401;
+ __m128i_out = __lsx_vsrari_d (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_w (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrari_h (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarn.c
new file mode 100644
index 0000000..60d4742
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarn.c
@@ -0,0 +1,236 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffefffffffef;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffff1;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefff6fff80002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff000000fefb0000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000c2f90000bafa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000c2fa8000c2fa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xc2f9bafac2fac2fa;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0204;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3918371635143312;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000001d5d4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000150d707009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x03f1e3d28b1a8a1a;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffefffefffeffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefffefffeffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff7f810100001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001fffc0ffffe001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000002259662;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc4dbe60354005d25;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f01000000f8ff00;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff6ff4ffff8db8;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffbaf4ffffb805;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff4ffb800ff0080;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000044470000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00004dce00004700;
+ __m128i_out = __lsx_vsrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0b4c600000000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x08080807f5f5f5f8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0202f5f80000ff00;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0d060d060d060d06;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0d060d060d060d06;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0d060d060d060d06;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff01fe03ff01fe03;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01fe03ff01fe03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01fe03ff01fe03;
+ __m128i_out = __lsx_vsrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarni.c
new file mode 100644
index 0000000..3aa23bd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrarni.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff020000fff4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff020000fff4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fc0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1e801ffc00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080007f80800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x4b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000001e5;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x5000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff8000002f4ef4a8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000f4a8;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00100184017e0032;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0086018c01360164;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffff33c4b1e67;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800c0004300c;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001300000013;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000e0000000e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x66);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4101010141010100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000001ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0020808100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x64);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x028c026bfff027af;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000003fc03fc00;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffc00a3009b000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ffa7f8ff81;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000003f0080ffc0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000007fff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000a7f87fffff81;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffd400000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000004000000040;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000080003f80ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000001fc00000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff80010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff80010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0bd80bd80bdfffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0bd80bd80bd80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1ffffffff8001000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf0bd80bd80bd8000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x24);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xecec006c00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xecec006c00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff007f00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001ff85ffdc0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000332ae5d97330;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1ff85ffe2ae5d973;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000043c5ea7b6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000008fc4ef7b4;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000fea0000fffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x48);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000dfa6e0c6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000d46cdc13;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x64);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x09e8e9012fded7fd;
+ *((unsigned long *)&__m128i_op0[0]) = 0x479f64b03373df61;
+ *((unsigned long *)&__m128i_op1[1]) = 0x04c0044a0400043a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x04c004d6040004c6;
+ *((unsigned long *)&__m128i_result[1]) = 0x1d20db00ec967bec;
+ *((unsigned long *)&__m128i_result[0]) = 0x00890087009b0099;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000080800000808;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080000180800001;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000003e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe00fe000200fe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00fe00fe000200fe;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000003e;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefe02fefefe02fe;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000000010000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0103000201030002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc000400000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00003fff00010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff010000ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcd636363cd636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xf359f359f359f359;
+ *((unsigned long *)&__m128i_result[0]) = 0xf359f359f359f359;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01533b5e7489ae24;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xce9135c49ffff570;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_d_q (__m128i_op0, __m128i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000807bf0a1f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000800ecedee68;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0005840100000005;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0005847b00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001f0a20001cedf;
+ *((unsigned long *)&__m128i_result[0]) = 0x0058000000580000;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffb1fb1000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf2c97aaa7d8fa270;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0b73e427f7cfcb88;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrarni_w_d (__m128i_op0, __m128i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0a545374471b7070;
+ *((unsigned long *)&__m128i_op0[0]) = 0x274f4f0648145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0xa8a736e19e9e28bf;
+ *((unsigned long *)&__m128i_result[0]) = 0x9e9f9e9f9e9f9e9f;
+ __m128i_out = __lsx_vsrarni_h_w (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrl.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrl.c
new file mode 100644
index 0000000..f9c7898
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrl.c
@@ -0,0 +1,389 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffefffffffef;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000005555555554;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001000f000e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000fff1000ffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002a55005501;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000002a55000001;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80000000fff8fff8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80000000fff80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f800000fff8fff8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f800000fff80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x80000000fff80000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0004000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0004000000040000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff6fff6fff6fff6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000750500006541;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000100fffffefd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00f900d7003d00e4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003e00d100de002b;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f4000007f040000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f0200007f020000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffe000000f6;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x01010101ffffff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x01010101000000f6;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000049000000c0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001ffffff29;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffff7f00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff007f0101017f;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff2900000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000401000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff2900000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc2f9bafac2fac2fa;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0804080407040804;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000010a000b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101080408040804;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100810080e081;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4688500046f6a000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f8000004f7fff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ffffff03ffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00013fff;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffe;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000021ffffffdf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000e60;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0202fe02fd020102;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0400040004000400;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101fe870101fe87;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101fe8700000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x61608654a2d4f6da;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000fb01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000007000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fb01;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000e0000;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff0000000000;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff000100ff00fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff003000ff00a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000100ff00fe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff003000ff00a0;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100010100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffe0000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ff00ff;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffe7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000001fd02;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffe1fffffff;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff7fffffff7f;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff007fff810001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000400530050ffa6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff800fff01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000007ff000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000056f64adb9464;
+ *((unsigned long *)&__m128i_op1[0]) = 0x29ca096f235819c2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000004399d32;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffffffffff;
+ __m128i_out = __lsx_vsrl_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrl_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrli.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrli.c
new file mode 100644
index 0000000..7b5e9a7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrli.c
@@ -0,0 +1,328 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001ffff0001ffff;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000020000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000100000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000080000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000017f0a82;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x03ff03ff03ff03ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000400000204010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000020000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000020000010200;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000003fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003fffffff;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x37);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020002000200020;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffefffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffefffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0007000700070007;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000c000c000c000c;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000003d0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000003d0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000030000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000030000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00fe00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000100;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xaa14efac3bb62636;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd6c22c8353a80d2c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000300000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003000000010000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3fff3fff3fff3fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000700000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffbffda;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001010101;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x000001fffdfffdff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000001fffdfffdff;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a64b345308091;
+ *((unsigned long *)&__m128i_result[0]) = 0x001f2f2cab1c732a;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000290;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000290;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020000ffff0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000003030000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000002345454;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c0dec4ca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000060006;
+ __m128i_out = __lsx_vsrli_h (__m128i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000200000000d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_b (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000eefff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf8e1a03affffe3e2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000003e0000003f;
+ __m128i_out = __lsx_vsrli_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrli_d (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrln.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrln.c
new file mode 100644
index 0000000..5a8f4f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrln.c
@@ -0,0 +1,335 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000c77c000047cd;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000c0f100006549;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffdfff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffdfff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe00001ffe200;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffffdfff;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff35cab978;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff35cab978;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010035;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000020;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x80307028ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8040007fffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0101ff010101;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4180418041804180;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00000000;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00008bf700017052;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000f841000091aa;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe6d4572c8a5835bc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe5017c2ac9ca9fd0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000f8410000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001010001;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000100000001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0ed5ced7e51023e5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001000e51023e5;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffbfff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010001;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000020002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000020002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000017ffeffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000017ffeffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x379674c000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3789f68000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfefeff00fefeff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfefeff00fefeff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00c0000000800000;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000071768fa4;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffdfdc0d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffdfdc0d;
+ __m128i_out = __lsx_vsrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000246d9755;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002427c2ee;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlni.c
new file mode 100644
index 0000000..ca462c8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlni.c
@@ -0,0 +1,281 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1e801ffc7fc00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003fe00ffe3fe0;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000001f;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x7b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc39fffff007fffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000fe00fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x78c00000ff000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x61cf003f0000007f;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000003c607f80;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff7f01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff7f01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffe03;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffe03;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff8001ffff8001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x000fffefffefffef;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x4b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363797c63990099;
+ *((unsigned long *)&__m128i_op0[0]) = 0x171f0a1f6376441f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363797c63990099;
+ *((unsigned long *)&__m128i_op1[0]) = 0x171f0a1f6376441f;
+ *((unsigned long *)&__m128i_result[1]) = 0x181e180005021811;
+ *((unsigned long *)&__m128i_result[0]) = 0x181e180005021811;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003fff00003fff;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf0fd800080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000a00028004000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000f000800000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x000f000000000000;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xaeaeaeaeaeaeae35;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaeaeaeaeaeaeae35;
+ *((unsigned long *)&__m128i_op1[1]) = 0xaeaeaeaeaeaeae35;
+ *((unsigned long *)&__m128i_op1[0]) = 0xaeaeaeaeaeaeae35;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000002;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00000000;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000008140c80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000002050320;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x010101017f010101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000040600000406;
+ *((unsigned long *)&__m128i_result[0]) = 0x020202020202fe02;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe364525335ede000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000fff00000e36;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x601fbfbeffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfff8000000000000;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrlni_h_w (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000455555555;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000008;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_w_d (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7c7c000000007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000001f1f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000bffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000040001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe4c8b96e2560afe9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc001a1867fffa207;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe4c8b96e2560afe9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc001a1867fffa207;
+ *((unsigned long *)&__m128i_result[1]) = 0xe2560afe9c001a18;
+ *((unsigned long *)&__m128i_result[0]) = 0xe2560afe9c001a18;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x24);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000042ab41;
+ *((unsigned long *)&__m128i_op0[0]) = 0xb1b1b1b1b16f0670;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000044470000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000100;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000080c43b700;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x30eb022002101b20;
+ *((unsigned long *)&__m128i_op1[0]) = 0x020310edc003023d;
+ *((unsigned long *)&__m128i_result[1]) = 0x022002101b200203;
+ *((unsigned long *)&__m128i_result[0]) = 0x022002101b200203;
+ __m128i_out = __lsx_vsrlni_d_q (__m128i_op0, __m128i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlni_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlr.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlr.c
new file mode 100644
index 0000000..211339b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlr.c
@@ -0,0 +1,434 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x43e092728266beba;
+ *((unsigned long *)&__m128i_op1[0]) = 0x43d8969cc4afbf2d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000007f800000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc001fffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000200020002;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffff0ffe04000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000200010;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000101fd01fe;
+ *((unsigned long *)&__m128i_result[1]) = 0xff80ff80ff80ff80;
+ *((unsigned long *)&__m128i_result[0]) = 0xff80ff8080008000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf51cf8dad6040188;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0982e2daf234ed87;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff51cf8da;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffd6040188;
+ *((unsigned long *)&__m128i_result[1]) = 0x00020002000d0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000020f2300ee;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007f8000007f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000003fc;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000003fc;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000006;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0040000000400000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0040000000400000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0020808100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff208fffffa02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe218ffffea10;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff208fffffa02;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x111110ff11111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000f00f;
+ *((unsigned long *)&__m128i_result[1]) = 0x111110ff11111141;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111113111111100;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f54e0ab00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7ff8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000100;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfeca2eb9931;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00d3007c014e00bd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x06e1000e00030005;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0202020202020202;
+ *((unsigned long *)&__m128i_op0[0]) = 0x363d753d50155c0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe500c085c000c005;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe5c1a185c48004c5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002020002020200;
+ *((unsigned long *)&__m128i_result[0]) = 0x021f3b0205150600;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffe000ffdf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffe000ffdf;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffe080f6efc100f7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xefd32176ffe100f7;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000040000000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000040000000000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffdfe01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffdfe0200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4000000000000000;
+ __m128i_out = __lsx_vsrlr_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_op0[0]) = 0xa352bfac9269e0aa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xd70b30c96ea9f4e8;
+ *((unsigned long *)&__m128i_result[0]) = 0xa352bfac9269e0aa;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000158;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00009c7c00007176;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000001fffeff98;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0014ffe4ff76ffc4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000010;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x084d1a0907151a3d;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff9fffefff9ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0280000000000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0700f8ff0700f8ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0700f8ff0700f8ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3bc000003a800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000090a00000998;
+ *((unsigned long *)&__m128i_result[1]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000ef0000000003b;
+ __m128i_out = __lsx_vsrlr_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0005847b00011005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0005847b00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000807bf0a1f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000800ecedee68;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005840100000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0005847b00000000;
+ __m128i_out = __lsx_vsrlr_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00250023001c001d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x309d2f342a5d2b34;
+ *((unsigned long *)&__m128i_result[1]) = 0x00060eb000000006;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000075c00000cf0;
+ __m128i_out = __lsx_vsrlr_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlri.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlri.c
new file mode 100644
index 0000000..2c3a534
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlri.c
@@ -0,0 +1,300 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0005252800052528;
+ *((unsigned long *)&__m128i_result[0]) = 0x0005252800052528;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0200020002000200;
+ *((unsigned long *)&__m128i_result[0]) = 0x0200020002000200;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc001fffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000200000;
+ *((unsigned long *)&__m128i_result[0]) = 0x001fff8004000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000030000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00060001fffe8003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000200010;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000078c00000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000078c00000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x4000400000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000040004000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001800390049ffaa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0029ff96005cff88;
+ *((unsigned long *)&__m128i_result[1]) = 0x001800390049ffaa;
+ *((unsigned long *)&__m128i_result[0]) = 0x0029ff96005cff88;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03c0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03c0038000000380;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa2a2a2a3a2a2a2a3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc605c000aedd0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000005151515;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000006302e00;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2000200000013fa0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000013fa0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000020000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000020000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x23);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000dc300003ffb;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000dc300003ffb;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808000000035;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00018d8e00018d8e;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fc03fc000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000003fc00ff00;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001fe01fe00;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200020002;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000800080008000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x045340a628404044;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003ddc5dac;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001030103;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlri_h (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9611c3985b3159f5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0021b761002c593c;
+ *((unsigned long *)&__m128i_result[0]) = 0x002584710016cc56;
+ __m128i_out = __lsx_vsrlri_w (__m128i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_result[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_result[0]) = 0xbbc8ecc5f3ced5f3;
+ __m128i_out = __lsx_vsrlri_d (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000080801030000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080103040000;
+ __m128i_out = __lsx_vsrlri_b (__m128i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c
new file mode 100644
index 0000000..c630b42
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c
@@ -0,0 +1,164 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001ffff0001ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000efffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040400000383;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffe000ffff1fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000383ffff1fff;
+ __m128i_out = __lsx_vsrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000003fc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000003fc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x002affd600000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcbc2723a4f12a5f8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffd60001723aa5f8;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x467f6080467d607f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808081;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xe000e0006080b040;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010101030101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101030101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000fffa0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffa0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101000101010001;
+ __m128i_out = __lsx_vsrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80ffffffffff80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff80ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6a5d5b056f2f4978;
+ *((unsigned long *)&__m128i_op1[0]) = 0x17483c07141b5971;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0800010001ff8000;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff01ff01ac025c87;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff01ff01ac465ca1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c
new file mode 100644
index 0000000..468a17c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c
@@ -0,0 +1,686 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff8969ffffd7e2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000d688ffffbd95;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf12dfafc1ad1f7b3;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000200000002000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000100;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000c0002000c0002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000400c600700153;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000c0002000c0002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000400c600700153;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000010000007f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0800000400000800;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001515151500;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001515151500;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001515000015150;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fdfd0404;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fffffff3fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fffffff3fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fc08;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000800080008000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000fc08;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffba420000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000007e044000400;
+ *((unsigned long *)&__m128i_result[0]) = 0xfdd2100000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000081e003f3f3f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3f3f3f0e00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000081e003f3f3f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f3f3f0e00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000103c007e7e8;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000103c007e7e8;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x43);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0202022302023212;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0202ff3f02022212;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002100003010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff3f00002010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x79);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe2bb5ff00e20aceb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe2bb5ff00e20aceb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0100010000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00e3000e00e3000e;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf58df7841423142a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f7477f8ff4e2152;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3d3e0505101e4008;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2bd5d429e34a1efb;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfc0203fccbedbba7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc9f66947f077afd0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x89fed7c07fdf5d00;
+ *((unsigned long *)&__m128i_result[1]) = 0x14f1a50ffe65f6de;
+ *((unsigned long *)&__m128i_result[0]) = 0xa3f83bd8e03fefaf;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6ed694e00e0355db;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000010600000106;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xe00e035606000001;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xe739e7ade77ae725;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbb9013bd049bc9ec;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x56aca41400000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7ade77ae3bd049bd;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000041400000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1010101010101010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8081808180818081;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000006ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0037f80000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x69);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0080808080c04040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0101010001808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000202000008081;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001010100010101;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00fff00000001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x6b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000adf0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001e00;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0040000000400040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000020002020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001010102;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001000100010000b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03fc03fc03fc03fc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x04000400ff01ff01;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1010101010101010;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000fff800000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001ed68;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1ff6a09e667f3bd8;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007b5a;
+ *((unsigned long *)&__m128i_result[0]) = 0x999fcef600000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffe5c8000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x91f80badc162a0c4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x99d1ffff0101ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff400000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x905d0b06cf0008f8;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3802f4fd025800f7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc8ff0bffff00ffae;
+ *((unsigned long *)&__m128i_op1[0]) = 0x91ff40fffff8ff50;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000200000000700;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000192000001240;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff0ffd0ffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff0ffc0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbb7743ca4c78461f;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd9743eb5fb4deb3a;
+ *((unsigned long *)&__m128i_result[1]) = 0x003fffffffc3ff44;
+ *((unsigned long *)&__m128i_result[0]) = 0x002eddd0f2931e12;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x4a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbb7743ca4c78461f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd9743eb5fb4deb3a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x22445e1ad9c3e4f0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1b43e8a30a570a63;
+ *((unsigned long *)&__m128i_result[1]) = 0x743ca4c843eb5fb5;
+ *((unsigned long *)&__m128i_result[0]) = 0x45e1ad9c3e8a30a5;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1204900f62f72565;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4901725600000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000400000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000300000003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f3f3f7fbf3fffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x47);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000040804080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000020100000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffe8ffff28fc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00007fff0000803e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000006ffff81e1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0ffffffe8ffff290;
+ *((unsigned long *)&__m128i_result[0]) = 0x000007fff0000804;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x44);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000418200000008e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000002100047;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636362;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636362;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636362;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636362;
+ *((unsigned long *)&__m128i_result[1]) = 0x0032003200320032;
+ *((unsigned long *)&__m128i_result[0]) = 0x0032003200320032;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff01010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ffdf87f0b0c7f7f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf6b3eb63f6b3f6b3;
+ *((unsigned long *)&__m128i_op1[0]) = 0x363953e42b56432e;
+ *((unsigned long *)&__m128i_result[1]) = 0x010000010080000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x00f700f70036002b;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xed67d6c7ed67ed67;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6c72a7c856ac865c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000700000003;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff40ff83;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1010101010101010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000003030103;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000003030103;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000006060;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000006060;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000002408beb26c8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000706e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000028c27;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000070;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x80000b0b80000b0b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000101080001010;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffefefffffeff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0061006100020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000fe00fe;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000078087f08;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000078087f08;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000e0fc0000e0fc;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff0bff76;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x75);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff00ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff00ffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000828282828282;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0008000800000008;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00f7000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000005150;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000005150;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000f7000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x24);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41afddcb1c000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd09e1bd99a2c6eb1;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe82f7c27bb0778af;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000040002;
+ *((unsigned long *)&__m128i_result[0]) = 0x000d000a000f000c;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff8000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffdff0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0144329880000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007fffc0007ffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x004000004c400000;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001e0000001e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffafff0fff9ff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000d800cff8;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsrlrni_h_w (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000002000007d7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000300000ff1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x000007d700000ff1;
+ __m128i_out = __lsx_vsrlrni_w_d (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fc000007fc00000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff00ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000ff8;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001000;
+ __m128i_out = __lsx_vsrlrni_d_q (__m128i_op0, __m128i_op1, 0x74);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000f08;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x2020202020202020;
+ __m128i_out = __lsx_vsrlrni_b_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssran.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssran.c
new file mode 100644
index 0000000..e45ca36
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssran.c
@@ -0,0 +1,390 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f00000000003f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000001000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffc000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff0000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffefffffffeff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffcff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x02b504f305a5c091;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x02b504f305a5c091;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000005602d2;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000003f80b0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xb327b9363c992b2e;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa1e7b475d925730f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000001ff00;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0060e050007f0160;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0040007fff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ffffff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1268f057137a0267;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0048137ef886fae0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x75b043c4d17db125;
+ *((unsigned long *)&__m128i_op1[0]) = 0xeef8227b4f8017b1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x027c027c000027c0;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000006f00000000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffd000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff994db09c;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffc7639d96;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0fff0fff0fff0fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0x9);
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f80000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x800080007f008000;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000695d00009b8f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000074f20000d272;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001f5400000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000ff0000;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00010000fffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00010000fffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff00000000;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x31b1777777777776;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6eee282828282829;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000006362ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff801c9e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000810000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x40eff02383e383e4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000007fff;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffb00fdfdf7ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000c0c00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000a74aa8a55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6adeb5dfcb000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a7480007fff8000;
+ __m128i_out = __lsx_vssran_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000fe00fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fe00fe00fe00fe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000f50000007500;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00007e1600007d98;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00fe00fe7fffffff;
+ __m128i_out = __lsx_vssran_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f4f4f4f4f4f0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f4f4f4f4f4f0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f007f7f7f00;
+ __m128i_out = __lsx_vssran_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrani.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrani.c
new file mode 100644
index 0000000..7ffcecd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrani.c
@@ -0,0 +1,679 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000007f7f02;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff7fffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffff7ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x64);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x47);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0004007c00fc0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f7f7f7f00107f04;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f0000fd7f0000fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00cf01fe01fe01fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000301de01fe01fe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f00000000000000;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe31c86e90cda86f7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000e3;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc39fffff007fffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fe00fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff0e700000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffff0000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f0000007f000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080000180800100;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fff7fc01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x82c539ffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc72df14afbfafdf9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x23);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000c0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001ffffff29;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000020000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000183fffffe5;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000080000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000ff0000;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fefefe6a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000fbf9;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000007f8;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a000a000a000a00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x4d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f007f007f007f00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000030000003f;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0003003f;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x4c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x007b01ec007b3a9e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fff9fff9;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fff9fffa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007ffe7ffe400000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc485edbcc0000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000c485;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x21011f3f193d173b;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff39ff37ff35ff33;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000015d926c7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000e41b;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c0c0c0c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0014000100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00003f80000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff46;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x4c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffee00000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3a3a3a3b3a3a3a3a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3a3a00003a3a0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000003a0000003a;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000080000068;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000038003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000040033;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00001fff00001fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000007ffc000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffe0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000fff0;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000004000000040;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000005e94;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00005e96ffffb402;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000bd;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001fc0000fffeff;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000002fffffffb;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000fffb;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000bffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x42);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000158;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x79);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000777777777777;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff7777ffff7777;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000003bbbbbbbbbb;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x45);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0007fff800000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6a5d5b056f2f4978;
+ *((unsigned long *)&__m128i_op1[0]) = 0x17483c07141b5971;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xd4bade5e2e902836;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0010001000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1000000010001000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_hu_w (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00680486ffffffda;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff913bb9951901;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67157b5100005000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x387c7e0a133f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0c0f000a070f0204;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x98147a504d145000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x377b810912c0e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xe);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c7c266e3faa293c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x86dd8341b164f12b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9611c3985b3159f5;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xff86dd83ff9611c3;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_w_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1010111105050000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040000041410101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000808000020200;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2e2b34ca59fa4c88;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3b2c8aefd44be966;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x2e34594c3b000000;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff1afffefec0ec85;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff1aff6d48ce567f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80c400000148;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff80c1ffffe8de;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe3ffd8ffe30919;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffffffff;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1313131313131313;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1313131313131313;
+ *((unsigned long *)&__m128i_op1[1]) = 0x34947b4b11684f92;
+ *((unsigned long *)&__m128i_op1[0]) = 0xd73691661e5b68b4;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x084d1a0907151a3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000007d07fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vssrani_b_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000014eb54ab;
+ *((unsigned long *)&__m128i_op1[0]) = 0x14eb6a002a406a00;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0001fffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_d_q (__m128i_op0, __m128i_op1, 0x60);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffaf1500000fffa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000f8a40000f310;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000003e2;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_h_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128i_op0[0]) = 0x27b1b106b8145f50;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_wu_d (__m128i_op0, __m128i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff8ffa2fffdffb0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_du_q (__m128i_op0, __m128i_op1, 0x50);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrani_bu_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarn.c
new file mode 100644
index 0000000..a23ad7c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarn.c
@@ -0,0 +1,669 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffd24271c4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2711bad1e8e309ed;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xbf8000000000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcf00000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0403cfcf01c1595e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x837cd5db43fc55d4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff80007fff;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffcb410000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffeb827ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc1bdceee242070db;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe8c7b756d76aa478;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefd7f7f7f7f7f7e;
+ *((unsigned long *)&__m128i_op0[0]) = 0xdffdbffeba6f5543;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ffffff000000ff;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ffffff000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000002010;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff00000000000001;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc1bdceee242070db;
+ *((unsigned long *)&__m128i_op1[0]) = 0xe8c7b756d76aa478;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fffff00;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000003fffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff000000ff00;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000007ae567a3e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000700ff00000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0bd80bd80bdfffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0bd80bd80bd80000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x006f0efe258ca851;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ffff00;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000f00f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000007fff;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020207f7f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff0000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111311111114111;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111311111110000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2020202020202020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2020202020207fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f417f417f027e03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9780697084f07dd7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x87e3285243051cf3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fea8ff44;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fea8ff44;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000008000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_op0[0]) = 0x545cab1d81a83bea;
+ *((unsigned long *)&__m128i_op1[1]) = 0x13f9c5b60028a415;
+ *((unsigned long *)&__m128i_op1[0]) = 0x545cab1d81a83bea;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff0015172b;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x14ccc631eb3339ce;
+ *((unsigned long *)&__m128i_op0[0]) = 0x685670d197a98f2e;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0000ffff0000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000e36400015253;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000035ed0001e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000e36400015253;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000035ed0001e000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1c6c80007fffffff;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000b4a00008808;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0808080800000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc2fc0000c3040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc2fc0000c3040000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000060000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000060000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0600000100000001;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080008000800080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080006b00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000500000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7efefefe82010201;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff0000ff;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff00;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff010300ff0103;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000002ffffffff;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000045340a6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000028404044;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000fffffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000102020204000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x045340a628404044;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001400000014;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000adad0000adad;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000052520000adad;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd6a09e662ab46b31;
+ *((unsigned long *)&__m128i_op0[0]) = 0x34b8122ef4054bb3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9b509be72f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3513f2e3a1774d2c;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000501ffff0005;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0021b761002c593c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x002584710016cc56;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff0000ffff;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff800000ff800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00020000ffff0001;
+ __m128i_out = __lsx_vssrarn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x004001be00dc008e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1f3f06d4fcba4e98;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2e1135681fa8d951;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000007d07fffffff;
+ __m128i_out = __lsx_vssrarn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000008686;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00008e5680008685;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007fff7fff8000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc7f100004000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c7f14000;
+ __m128i_out = __lsx_vssrarn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4500000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4400000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xff000000ff000000;
+ __m128i_out = __lsx_vssrarn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8a8a8a8a8a8a8a8a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8a8a8a8a8a8a8a8a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarni.c
new file mode 100644
index 0000000..76fac97
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrarni.c
@@ -0,0 +1,848 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0020002000200020;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff60090958;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0fa96b88d9944d42;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001802041b0013;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x72);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0200020002000200;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_wu_d (__m128i_op0, __m128i_op1, 0x3f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x5c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000000020000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xda4643d5301c4000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc1fc0d3bf55c4000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7505853d654185f5;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01010000fefe0101;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_wu_d (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00020002000d0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000020f2300ee;
+ *((unsigned long *)&__m128i_result[1]) = 0x0400040004000400;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000000f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x79);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000073;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000010000002b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000400000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01ff01ff01ff01ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x59);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000f0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001800390049ffaa;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0029ff96005cff88;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03c0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x03c0038000000380;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f0000000f000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0bef0b880bd80bd8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0bd80bd80bdfffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0bd80bd80bd80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000017b017b01;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffe0001fffe0001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x30);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf0800320fff1fa20;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0032000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111113111111141;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111113111111121;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0032000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f417f417f027e03;
+ *((unsigned long *)&__m128i_op1[1]) = 0xe93d0bd19ff0c170;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5237c1bac9eadf55;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x60);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000065a0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9941d155f43a9d08;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c0c8b8a8b8b0b0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8b8a8a898a8a8909;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1817161517161514;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1615141315141312;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrarni_wu_d (__m128i_op0, __m128i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc0fffff000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffe00000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010001000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000080000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x58);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100fe000100fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0d1202e19235e2bc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xea38e0f75f6e56d1;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe500ffffc085;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffc000ffffc005;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff00000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100080000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0400400204004002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffe080f6efc100f7;
+ *((unsigned long *)&__m128i_op0[0]) = 0xefd32176ffe100f7;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffe080f6efc100f7;
+ *((unsigned long *)&__m128i_op1[0]) = 0xefd32176ffe100f7;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_wu_d (__m128i_op0, __m128i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000005452505;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000004442403e4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x03fc03fc03fc03fc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000b4a00008808;
+ *((unsigned long *)&__m128i_result[0]) = 0x0808080800000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x71);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x2ea268972ea2966a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4026f4ffbc175bff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x5d7f5d807fea807f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfff0fffffff00001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff0fffffff09515;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000ff00000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000003000000d612;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000bfffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000500000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80808080806b000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000c0c0c000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffe1fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff7ffffffb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000080008;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1ab6021f72496458;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7750af4954c29940;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1ab6021f72496458;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7750af4954c29940;
+ *((unsigned long *)&__m128i_result[1]) = 0x6ad8ffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x6ad8ffffffffffff;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002008300500088;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000088;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000020000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x2d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1200091212121212;
+ *((unsigned long *)&__m128i_result[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000008000000080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x51);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_du_q (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_h_w (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffeff98;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0014ffe4ff76ffc4;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000011;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000016;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff86dd83ff9611c3;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000035697d4e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000013ecaadf2;
+ *((unsigned long *)&__m128i_result[1]) = 0xe280e67f00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007f7f00007f80;
+ __m128i_out = __lsx_vssrarni_b_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xd3259a2984048c23;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf9796558e39953fd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8000000080000000;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x017001a002c80260;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01d8000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2e34594c3b000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrarni_wu_d (__m128i_op0, __m128i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00060fbf02596848;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020fbf04581ec0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x010169d9010169d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0x01010287010146a1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200000001;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_op1[0]) = 0x004d004d004d004d;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x06d9090909090909;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x48);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0039d21e3229d4e8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6d339b4f3b439885;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffff000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000d00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffc0000000000000;
+ __m128i_out = __lsx_vssrarni_d_q (__m128i_op0, __m128i_op1, 0x2e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000100000001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x37b951002d81a921;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000075dbe982;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000071e48cca;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0ebb7d300e3c9199;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrarni_w_d (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000930400008a10;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00006f9100007337;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00c2758000bccf42;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00a975be00accf03;
+ *((unsigned long *)&__m128i_result[1]) = 0x00250023001c001d;
+ *((unsigned long *)&__m128i_result[0]) = 0x309d2f342a5d2b34;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff01ffffe41f0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfff00000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000155;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000002b;
+ __m128i_out = __lsx_vssrarni_bu_h (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfee1f6f18800ff7f;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrarni_hu_w (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrln.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrln.c
new file mode 100644
index 0000000..ed600c7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrln.c
@@ -0,0 +1,543 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8080808000008080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080000080800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffff0000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x5ff6a0a40ea8f47c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x5ff6a0a40e9da42a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00003ff000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fffc00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001afffffff7;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000750500006541;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000100fffffefd;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff00000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80000000fff6fc00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7f0000007f000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080000180800100;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ff00ffff;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0x7);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefff6fff80002;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101017f0101017f;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00005a5a00005a5a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00005b5a00005b5a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x65b780a2ae3bf8ca;
+ *((unsigned long *)&__m128i_op1[0]) = 0x161d0c373c200827;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000001ff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf10cf508f904fd01;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf10cf508f904fd01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf8f8e018f8f8e810;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf8f8f008f8f8f800;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrln_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00007fff00007fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff00000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000c0000bd49;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000f0009d3c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000016fff9d3d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000c000000060003;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000003a24;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003dbe88077c78c1;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffe0001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00003a247fff7fff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrln_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000003fbf3fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7ff8;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x3fbf3fbf00007fff;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000fff00000e36;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000fff0e36;
+ __m128i_out = __lsx_vssrln_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffe000ffdf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010101;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000001b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff0018;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffefffefffefffef;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0080000700000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffbffda;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3e25c8317394dae6;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcda585aebbb2836a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ac00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c6c6c6c6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrln_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x64616462b76106dc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x64616462b71d06c2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00c0c000c0000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc0000000c000c000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00c0c000c0000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc0000000c000c000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001e001e001e001e;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001e001e001e001e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op0[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001700000017;
+ *((unsigned long *)&__m128i_op1[0]) = 0x59f7fd8759f7fd87;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff7fff;
+ __m128i_out = __lsx_vssrln_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffc0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff00000001;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00007fff7fff8000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000007f7f7f;
+ __m128i_out = __lsx_vssrln_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf589caff5605f2fa;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000a74aa8a55ab;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6adeb5dfcb000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrln_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7f8000007f800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrln_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlni.c
new file mode 100644
index 0000000..6136681
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlni.c
@@ -0,0 +1,668 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001ffff00000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x4f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004e005500060031;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff870068fff5ffb3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x004e005500060031;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff870068fff5ffb3;
+ *((unsigned long *)&__m128i_result[1]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x04e00060ffffffff;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52527d7d52527d7d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808000008080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080000080800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001010100010100;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000080007f80800;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00047fff00007fff;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff0000ff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x01fc020000fe0100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000003fc0003;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000017fda829;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_op0[0]) = 0x342caf9bffff1fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000040000000400;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c037fff342c7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000fff8fff8;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fff80000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x37);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff100fffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff00000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff100fffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff100fffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffff800;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000080000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001fffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x4b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a000a000a000a00;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf2f2e5e5e5e5e5dc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000003fc0;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x22);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x35);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0008000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[1]) = 0x41dfffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000083b00000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x33);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000003;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x7e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1ff85ffe2ae5d973;
+ *((unsigned long *)&__m128i_op1[1]) = 0x403be000ffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000ffc2f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00201df000000000;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000005151515;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000006302e00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000003f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f417f417f027e03;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001fd0;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x32);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffbfffffffbf;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffffff7f;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x5f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000202fe02;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x01203f1e3d1c3b1a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3918371635143312;
+ *((unsigned long *)&__m128i_op1[1]) = 0x21201f1e1d1c1b1a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x480f7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00005dcbe7e830c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000001fffff59;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x63);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007f41;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000002000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x39);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x685670d27e00682a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x14ccc6320076a4d2;
+ *((unsigned long *)&__m128i_op1[0]) = 0x685670d27e00682a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc000000fc0003fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbffffff0ffffc00f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000003f0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffc3ffff003e;
+ *((unsigned long *)&__m128i_result[1]) = 0x00c0000000bfffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ffffff;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x800000810000807f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x808080010080007f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x800000810000807f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x808080010080007f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000020000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000020000020;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x62);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0400400204004002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000002002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2a29282726252423;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000002002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2a29282726252423;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2221201f1e1d1c1b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00a8009800880078;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000807f00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x80006b0080808080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff00007fff7fff;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000001010101;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000001fe01;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000001fe01;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000f0000000f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f0f0f0f00000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff010300ff0103;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x555500adfffc5cab;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010100000100;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03ff0101fc010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03fffffffc010102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000300037ff000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_wu_d (__m128i_op0, __m128i_op1, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000007070707;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x45);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffdfffcfffdfffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffdfffcfffdfffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000053a4f452;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000053a;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_b_h (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000b3a6000067da;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00004e420000c26a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x7a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x67eb85afb2ebb000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc8847ef6ed3f2000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x38);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7c7c000000007176;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x3e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000c6c7;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8d8d8d8d8d8cc6c6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_w_d (__m128i_op0, __m128i_op1, 0x3c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000aa822a8228222;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03aa558ec8546eb6;
+ *((unsigned long *)&__m128i_op1[1]) = 0x001a64b345308091;
+ *((unsigned long *)&__m128i_op1[0]) = 0x001f2f2cab1c732a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0155ffff754affff;
+ *((unsigned long *)&__m128i_result[0]) = 0x034cffff03e5ffff;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc1bdceee242070dc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xe907b754d7eaa478;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_h_w (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_hu_w (__m128i_op0, __m128i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0002711350a27112;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00d5701794027113;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_du_q (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000203000010d0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffc00300000220;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000f50000000900;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000090900000998;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrlni_d_q (__m128i_op0, __m128i_op1, 0x20);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000001000010f8;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff8ffa2fffdffb0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f0f0f0f00000f00;
+ __m128i_out = __lsx_vssrlni_bu_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c
new file mode 100644
index 0000000..ec688bb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c
@@ -0,0 +1,470 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000200020002;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004200a000200001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff00007fff7fff;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00040003ff83ff84;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00040003ff4dffca;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000002020202;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffbe6ed563;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0100000001000100;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0100010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff732a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000fbf9;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000007f00000000;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000a000a000a000a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000004fc04f81;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000004fc04f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007f7f00007f7f;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc1000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffc1000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff000000007fff;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000bd3d00000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffff0000000ad3d;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff000fffff000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff0000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf001f0010101f002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000dfa6e0c6;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000d46cdc13;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80df00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007f7f00007f7f;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ffff3fbfffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fbf3fbf00007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007f7f7f01027f02;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000400000004;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0006000000040000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000000000007;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffe0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3f413f4100000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f801fe000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000100000000fc;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000100000000fc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0100000001000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0c0b0a090b0a0908;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a09080709080706;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000040a04000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000040a04000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00123fff00120012;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0012001200120012;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00003fff00010000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x1200091212121212;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_b_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0800010001ff8000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x2e9028362e902836;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2e9028362e902836;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_h_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffffc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000010;
+ __m128i_out = __lsx_vssrlrn_wu_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x33f5c2d7d975d7fe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000084d12ce;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000024170000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrn_w_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002711350a27112;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00d5701794027113;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4399d3221a29d3f2;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0674c886fcba4e98;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfdce8003090b0906;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff001a00000000;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001000000010;
+ __m128i_out = __lsx_vssrlrn_hu_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001fffe00014b41;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001fffe0001ffde;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0002000100020002;
+ __m128i_out = __lsx_vssrlrn_bu_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c
new file mode 100644
index 0000000..02f7ca0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c
@@ -0,0 +1,597 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x3d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x8080808000008080;
+ *((unsigned long *)&__m128i_result[0]) = 0x8080000080800000;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000080000000;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007f00;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0101010400100203;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0103010301020109;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000110000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000007f00000004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0202000402020202;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000200000010000;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x56);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x6d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0001ffff8002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0010000400020004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff20ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffc0020ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x07fff80000008000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000007ffe001;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_d_q (__m128i_op0, __m128i_op1, 0x7c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x03574e3b94f2ca31;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000001f807b89;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000005050000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0505000005050505;
+ *((unsigned long *)&__m128i_result[1]) = 0x000d02540000007e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001400140014;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x41);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x3b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x56a09e662ab46b31;
+ *((unsigned long *)&__m128i_op1[0]) = 0xb4b8122ef4054bb3;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x02b504f305a5c091;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x37);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000d000d000d000d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000d000d000d000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000680000006800;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000400;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00005555aaabfffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffffff000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000000ab;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000000ff;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x43);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff7fff;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000080;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x18);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080000000000;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x34);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x027c027c000027c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000004f804f81;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000004f804f80;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001400000014;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff81007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffb7005f0070007c;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff80007e028401;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9a10144000400000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000001ffff00010;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x5b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x29);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000040000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000080000000000;
+ __m128i_out = __lsx_vssrlrni_hu_w (__m128i_op0, __m128i_op1, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffff9cff05;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff9cfebd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000002;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff7ffffef77fffdd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf77edf9cffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001fffff001fffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001fffff001fffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x21201f1e1d1c1b1a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1918171615141312;
+ *((unsigned long *)&__m128i_result[1]) = 0x10ff10ff10ff10ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffa6ff91fdd8ef77;
+ *((unsigned long *)&__m128i_op0[0]) = 0x061202bffb141c38;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x010101fe0101fe87;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000004000000002;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffd60001723aa5f8;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007f007f7f;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f7f7f7f7f7f7f;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x808080e280808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080636380806363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x808080e280808080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080636380806363;
+ *((unsigned long *)&__m128i_result[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m128i_result[0]) = 0x0004000400040004;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000d0000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000dffff000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000070007;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000007ffff;
+ __m128i_out = __lsx_vssrlrni_hu_w (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800c00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000800000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_hu_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000007fff7fff;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffff0100ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0607060700000807;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0707f8f803e8157e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x31);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x21);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op0[0]) = 0x5252525252525252;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc0808000c0808000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000003020302;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x16);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc0ff80ff800000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_wu_d (__m128i_op0, __m128i_op1, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ffffffe00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x3a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffc0800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000008080600;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op0[0]) = 0x52525252adadadad;
+ *((unsigned long *)&__m128i_op1[1]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x800000007fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_hu_w (__m128i_op0, __m128i_op1, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x003ef89df07f0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003ec0fc0fbfe001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff800ff2fe6c00d;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff40408ece0e0de;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0xa);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4000400040004000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000ff960001005b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffa500010003;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[0]) = 0x0020000000000000;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x2b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1748c4f9ed1a5870;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffffffffffff;
+ __m128i_out = __lsx_vssrlrni_d_q (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfcfcfcdcfcfcfcdc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0010001000000010;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010001000100010;
+ __m128i_out = __lsx_vssrlrni_hu_w (__m128i_op0, __m128i_op1, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4000000040000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x27);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0x28);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_du_q (__m128i_op0, __m128i_op1, 0x26);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x117d7f7b093d187f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000034;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe1bfefe00011ee1;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe1bfe6c03824c60;
+ *((unsigned long *)&__m128i_result[1]) = 0x7f7f7f7f0000001a;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f7f017f7f7f7f7f;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff3a81ffff89fd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffb3c3ffff51ba;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0802080408060803;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff00ffffff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000900ffff98;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fffffff7fffffff;
+ __m128i_out = __lsx_vssrlrni_w_d (__m128i_op0, __m128i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_bu (__m128i_op0, 0xc);
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000056000056;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3a8000003a800000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000efffefff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xa03aa03ae3e2e3e2;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_d_q (__m128i_op0, __m128i_op1, 0x75);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000760151;
+ *((unsigned long *)&__m128i_op0[0]) = 0x003e0021009a009a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000246d9755;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000003e2427c2ee;
+ *((unsigned long *)&__m128i_result[1]) = 0x00001e5410082727;
+ *((unsigned long *)&__m128i_result[0]) = 0x00007f7f00107f7f;
+ __m128i_out = __lsx_vssrlrni_b_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000f1384;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000000004ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssrlrni_bu_h (__m128i_op0, __m128i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f8000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssrlrni_h_w (__m128i_op0, __m128i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-1.c
new file mode 100644
index 0000000..fc4cbb4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-1.c
@@ -0,0 +1,398 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001801f0307f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001801f0307f80;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_result[1]) = 0x0101010108082626;
+ *((unsigned long *)&__m128i_result[0]) = 0x01010101ffff7878;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00fe000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe80000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x027e0000000000ff;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffb4ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffff98dea;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3ff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xc00fffffffffb4ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xbf0c05fffff98dea;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000029;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffff00;
+ *((unsigned long *)&__m128i_result[1]) = 0x010101010101012f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0101010101010129;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_result[1]) = 0x1202120212021202;
+ *((unsigned long *)&__m128i_result[0]) = 0x1202120212021202;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00ff00ff00ff;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000800080008000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x41957fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0xbf6b810181018101;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff8ffa2fffdffb0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ff800000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0108015e01030150;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000017f0000;
+ __m128i_out = __lsx_vssub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007fffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xf436f3f52f4ef4a8;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0080000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf4b6f3f52f4ef4a8;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffff01ff01;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000101fd01fe;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0040004000400040;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc0ffc0ffc0ffc0;
+ *((unsigned long *)&__m128i_result[0]) = 0xffc0ffc0ffc0ffc0;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff010181010102;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fffffff81010102;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003f0000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fc0010181020103;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fc0ffff81020103;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001e03;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000011e04;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363abdf16;
+ *((unsigned long *)&__m128i_op0[0]) = 0x41f8e08016161198;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000246d9755;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000002427c2ee;
+ *((unsigned long *)&__m128i_result[1]) = 0x636363633f3e47c1;
+ *((unsigned long *)&__m128i_result[0]) = 0x41f8e080f1ef4eaa;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001fffe00014b41;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffe0001ffde;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0002ffffb4bf;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0002ffff0022;
+ __m128i_out = __lsx_vssub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001fc0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000002010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000001fbdff0;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x03f1e3d28b1a8a1a;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000001d5d4;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000150d707009;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000fffe2a2c;
+ *((unsigned long *)&__m128i_result[0]) = 0x03f1e3bd80000000;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffd5002affffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x343d8dc6b0ed5a08;
+ *((unsigned long *)&__m128i_result[1]) = 0x002affd600000001;
+ *((unsigned long *)&__m128i_result[0]) = 0xcbc2723a4f12a5f8;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffff7ffffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000020;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffdfffffffe0;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffdfffffffe0;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000c2f90000bafa;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000c2f90000bafa;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000c2fa8000c2fa;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff3d06ffff4506;
+ *((unsigned long *)&__m128i_result[0]) = 0x7ffffffe7ffff800;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffff3fffffff3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffffff3fffffff3;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff3fffffff4;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff3fffffff4;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ef8000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x8108000000000000;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000063b2ac27;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffaa076aeb;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff63b3584e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000fffdaa07d5d6;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffff81;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffff7c;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff7cffd6ffc700b0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x008300290038ff50;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c0dec4d1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff3f213b2f;
+ __m128i_out = __lsx_vssub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-2.c
new file mode 100644
index 0000000..0d59875
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vssub-2.c
@@ -0,0 +1,408 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x7f801fa06451ef11;
+ *((unsigned long *)&__m128i_op0[0]) = 0x68bcf93435ed25ed;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffb64c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000003900;
+ *((unsigned long *)&__m128i_result[0]) = 0x68bcf93435ed25ed;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x460f3b393ef4be3a;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x04e00060ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x04e00060ffffffff;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x004200a000200001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000001c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000001c;
+ *((unsigned long *)&__m128i_result[1]) = 0x004200a000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x004200a000200000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_op0[0]) = 0x342caf9be5579ebe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000f909;
+ *((unsigned long *)&__m128i_result[1]) = 0x0c03e17edd781b11;
+ *((unsigned long *)&__m128i_result[0]) = 0x342caf9be55700b5;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000200010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0f000d200e000c20;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x11000f2010000e20;
+ *((unsigned long *)&__m128i_result[0]) = 0x0f000d200e000c20;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000fffefffefffef;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x001ffff0003ffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0x000fffefffefffef;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4e3e13368c17f6e6;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111311111114111;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111311111112111;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111311111114111;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111311111110000;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0002000200020002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0202fe02fd020102;
+ *((unsigned long *)&__m128i_result[1]) = 0xfefcfefcfefcfefc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfcfc00fc01fcfdfc;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00004000ffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc5c53492f25acbf2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[1]) = 0xbfd10d0d7b6b6b73;
+ *((unsigned long *)&__m128i_result[0]) = 0xc5c534920000c4ed;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000200;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x00ff000000ff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xc14eef7fc14ea000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000ea000010fa101;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_b (__m128i_op0, 0xb);
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000bd3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000006ffef000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffc2ffe700000007;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ffc100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x41dfffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xbde2ffe800000007;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffc100010001;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000f3040705;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xa000308000008002;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0500847b00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000ff000000ff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x006f0efe258ca851;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000006f00001f0a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000958affff995d;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff90ffffe0f5;
+ *((unsigned long *)&__m128i_result[0]) = 0x006e7973258d0ef4;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ca02f854;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000d0000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363635663636356;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vssub_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vst.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vst.c
new file mode 100644
index 0000000..8afdffa
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vst.c
@@ -0,0 +1,70 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0x0;
+ __lsx_vst (__m128i_op0, (unsigned long *)&__m128i_result, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_op0, __m128i_result);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0x0;
+ __lsx_vstx (__m128i_op0, (unsigned long *)&__m128i_result, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_op0, __m128i_result);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0x05;
+ *((unsigned long *)&__m128i_out[1]) = 0x0;
+ *((unsigned long *)&__m128i_out[0]) = 0x0;
+ __lsx_vstelm_b (__m128i_op0, (unsigned long *)&__m128i_out, 0x0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0x5c05;
+ *((unsigned long *)&__m128i_out[1]) = 0x0;
+ *((unsigned long *)&__m128i_out[0]) = 0x0;
+ __lsx_vstelm_h (__m128i_op0, (unsigned long *)&__m128i_out, 0x0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0xc9d85c05;
+ *((unsigned long *)&__m128i_out[1]) = 0x0;
+ *((unsigned long *)&__m128i_out[0]) = 0x0;
+ __lsx_vstelm_w (__m128i_op0, (unsigned long *)&__m128i_out, 0x0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3ab7a3fc47a5c31a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0;
+ *((unsigned long *)&__m128i_result[0]) = 0x1dcc4255c9d85c05;
+ *((unsigned long *)&__m128i_out[1]) = 0x0;
+ *((unsigned long *)&__m128i_out[0]) = 0x0;
+ __lsx_vstelm_d (__m128i_op0, (unsigned long *)&__m128i_out, 0x0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsub.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsub.c
new file mode 100644
index 0000000..f5c82bc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsub.c
@@ -0,0 +1,381 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000ff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000000001fe;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xc6ffe000c6fde000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8080808080808081;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffe000ffffe000;
+ *((unsigned long *)&__m128i_result[0]) = 0x467f6080467d607f;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00fe00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00ff00fe00fe00ff;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff00007fff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff00007fff0000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c0dec4d1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000040223c2e;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfd200ed2fd370775;
+ *((unsigned long *)&__m128i_op0[0]) = 0x96198318780e32c5;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffe65ecc1be5bc;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe65ecc1be5bc;
+ *((unsigned long *)&__m128i_result[1]) = 0xfe212874311c22b9;
+ *((unsigned long *)&__m128i_result[0]) = 0x971a9dbaacf34d09;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ unsigned_int_out = __lsx_vpickve2gr_wu (__m128i_op0, 0x0);
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x4f4f4f4f4f4f4f4f;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f4f4f4f4f4f4f4f;
+ __m128i_out = __lsx_vsub_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0404038383838404;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf000e001bf84df83;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff8e001ff84e703;
+ *((unsigned long *)&__m128i_result[1]) = 0x14042382c3ffa481;
+ *((unsigned long *)&__m128i_result[0]) = 0x040c238283ff9d01;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0141010101410101;
+ *((unsigned long *)&__m128i_result[1]) = 0xfebffefffebffeff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfebffefffebffeff;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x1111111111111111;
+ *((unsigned long *)&__m128i_result[0]) = 0x1111111111111111;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000700000004fdff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000300000000fdff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff7fffefffa01ff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffbfffefffe01ff;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000000010000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000cd630000cd63;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000329d0000329d;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x08080807f7f7f7f8;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000202020200;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000100;
+ *((unsigned long *)&__m128i_result[1]) = 0x08080805f5f5f5f8;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ff00;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00060eb000000006;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000075c00000cf0;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffaf1500000fffa;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000f8a40000f310;
+ __m128i_out = __lsx_vsub_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff100fffc;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffdf100fffc;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000007f7f7f7f;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000010;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000800000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000800000000000;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00001802041b0013;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00001802041b0014;
+ __m128i_out = __lsx_vsub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000f7d1000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x773324887fffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff082efffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x88cbdb7780000001;
+ __m128i_out = __lsx_vsub_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001f50000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffe0b0000;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000fffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0010000000000001;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000b;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000800080;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000b;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000015;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0007000000050000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001fffe0001fefc;
+ *((unsigned long *)&__m128i_result[1]) = 0x0006000100040001;
+ *((unsigned long *)&__m128i_result[0]) = 0x00010002ffff0105;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000003fffffffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000003fffffffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000003fffffffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000003fffffffd;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000feff23560000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000fd1654860000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363abdf16;
+ *((unsigned long *)&__m128i_op1[0]) = 0x41f8e08016161198;
+ *((unsigned long *)&__m128i_result[1]) = 0x9c9d9b9bbfaa20e9;
+ *((unsigned long *)&__m128i_result[0]) = 0xbe081c963e6fee68;
+ __m128i_out = __lsx_vsub_q (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubi.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubi.c
new file mode 100644
index 0000000..37e0ccf
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubi.c
@@ -0,0 +1,329 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0xfff489b693120950;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffc45a851c40c18;
+ *((unsigned long *)&__m128i_result[1]) = 0xe0d56a9774f3ea31;
+ *((unsigned long *)&__m128i_result[0]) = 0xe0dd268932a5edf9;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffffff88;
+ *((unsigned long *)&__m128i_result[1]) = 0xe5e5e5e5e5e5e5e5;
+ *((unsigned long *)&__m128i_result[0]) = 0xe5e5e5e5e4e4e46d;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_result[1]) = 0xf7f7f7ff8e8c6d7e;
+ *((unsigned long *)&__m128i_result[0]) = 0xf7f7f7f7f7f7fbff;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x1);
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xe6e6e6e6e6e6e6e6;
+ *((unsigned long *)&__m128i_result[0]) = 0xe6e6e6e6e6e6e6e6;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf8f8f8f8f8f8f8f8;
+ *((unsigned long *)&__m128i_result[0]) = 0xf8f8f8f8f8f8f8f8;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x8);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2e34594c3b000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xe9e9e9e9e9e9e9e9;
+ *((unsigned long *)&__m128i_result[0]) = 0x171d423524e9e9e9;
+ __m128i_out = __lsx_vsubi_bu (__m128i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe2ffe2ffe2ffe2;
+ *((unsigned long *)&__m128i_result[0]) = 0xffe2ffe2ffe2ffe2;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9795698585057dec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x87f82867431a1d08;
+ *((unsigned long *)&__m128i_result[1]) = 0x9780697084f07dd7;
+ *((unsigned long *)&__m128i_result[0]) = 0x87e3285243051cf3;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffcfffcfffcfffc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffcfffcfffc;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000101;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffcfffcfffc00fd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffcfffcfffc;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x4);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x371fe00000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x371fe00000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_result[0]) = 0x370bdfecffecffec;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000040600000406;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020202020202fe02;
+ *((unsigned long *)&__m128i_result[1]) = 0xfff503fbfff503fb;
+ *((unsigned long *)&__m128i_result[0]) = 0x01f701f701f7fdf7;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffdfffdfffdfffd;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x803e0000803e0000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x803e0000803e0000;
+ *((unsigned long *)&__m128i_result[1]) = 0x803bfffd803bfffd;
+ *((unsigned long *)&__m128i_result[0]) = 0x803bfffd803bfffd;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffdfffdfffdfffd;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffdfffdfffdfffd;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffedffedffedffed;
+ *((unsigned long *)&__m128i_result[0]) = 0xffedffedffedffed;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x13);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffe4ffe4ffe4ffe4;
+ *((unsigned long *)&__m128i_result[0]) = 0xffe4ffe4ffe4ffe4;
+ __m128i_out = __lsx_vsubi_hu (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffefffffffef;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffefffffffef;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffe6ffffffe6;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffe6ffffffe6;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x19);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff1fffffff1;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff6fffffff6;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff6fffffff6;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffe4ffffffe4;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffe4ffffffe4;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffe1ffffffe1;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffe1ffffffe1;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffff1fffffff1;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffff1fffffff1;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffab7e71e33848;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffe1ffffffe1;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffab5f71e33829;
+ __m128i_out = __lsx_vsubi_wu (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xa8beed87bc3f2be1;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0024d8f6a494006a;
+ *((unsigned long *)&__m128i_result[1]) = 0xa8beed87bc3f2bd3;
+ *((unsigned long *)&__m128i_result[0]) = 0x0024d8f6a494005c;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffeb;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffe1;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffe1;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff7;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff7;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffe5;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffe5;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xf2f2e5e5e5e5e5e5;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xf2f2e5e5e5e5e5dc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff7;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fffff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x3ffffeffffffffe5;
+ *((unsigned long *)&__m128i_result[0]) = 0x3ffffeffffffffe5;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000070;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff5;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0xb);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffff0;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffff0;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x10);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffe6;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffe6;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100010000fffb;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010000fffb;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffeb;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffeb;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffffa;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffffffffa;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffdfffe80008000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffe2;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffdfffe80007fe2;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x001a001a001a001a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001a001a001a001a;
+ *((unsigned long *)&__m128i_result[1]) = 0x001a001a001a000b;
+ *((unsigned long *)&__m128i_result[0]) = 0x001a001a001a000b;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000000234545b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c0dec4d1;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000002345454;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000c0dec4ca;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0f8d33000f8d3300;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003b80000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0f8d33000f8d32fd;
+ *((unsigned long *)&__m128i_result[0]) = 0x0003b7fffffffffd;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubi_du (__m128i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c
new file mode 100644
index 0000000..f0d391a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c
@@ -0,0 +1,326 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x43d3e0000013e000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffd3000000130000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffd3000000130000;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff0001ffff9515;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x000100010000ffda;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000200000016;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffbfbfbfc0;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffbfbfbfc0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m128i_result[1]) = 0xffbfffbfff7fff80;
+ *((unsigned long *)&__m128i_result[0]) = 0xffbfffbfff7fff80;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000808000020200;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ff8000020000;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x413e276583869d79;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7f7f017f9d8726d3;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7c7cd2eb63637c52;
+ *((unsigned long *)&__m128i_op1[0]) = 0x82ffd2210127add2;
+ *((unsigned long *)&__m128i_result[1]) = 0xffc2007aff230027;
+ *((unsigned long *)&__m128i_result[0]) = 0x0080005eff600001;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffee;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000011ff040;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010012;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffe1ffc0;
+ __m128i_out = __lsx_vsubwev_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000004000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffc000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000000d;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000ffff00;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000100c6ffef10c;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffff01;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffeff400000df4;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000002050320;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000001c88bf0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000320;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000007730;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000005;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000005;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000001030103;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000103;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x33eac9fdca42f660;
+ *((unsigned long *)&__m128i_op0[0]) = 0xaa472d26fe867091;
+ *((unsigned long *)&__m128i_op1[1]) = 0x33eac9fdca42f660;
+ *((unsigned long *)&__m128i_op1[0]) = 0xaa472d26fe867091;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsubwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000208000002080;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000004;
+ __m128i_out = __lsx_vsubwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff0000857a;
+ *((unsigned long *)&__m128i_op1[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffff7a86;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffe01fff2;
+ __m128i_out = __lsx_vsubwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xf654ad7447e59090;
+ *((unsigned long *)&__m128i_op1[0]) = 0x27b1b106b8145f50;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffb81a6f70;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000047eba0b0;
+ __m128i_out = __lsx_vsubwev_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000c01020d8009;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000003004;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000c01020d5005;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffff01ff01;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000000d;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op0[0]) = 0x4f804f804f804f80;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4f804f804f804f80;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xb9fe3640e4eb1b18;
+ *((unsigned long *)&__m128i_op0[0]) = 0x800000005b4b1b18;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffb9fe00003640;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffe4eb00001b18;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x80001b155b4b0000;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000100000008;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100080000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffefff80000;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x3fc03fc000000004;
+ *((unsigned long *)&__m128i_op1[1]) = 0x3fc03fc000000003;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7f7f1fd800000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xc0411fe800000000;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff00e400ff00e400;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff01e41ffff0e440;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01e420fff0e442;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c
new file mode 100644
index 0000000..3b18bc1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c
@@ -0,0 +1,417 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00ff00ff00000083;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000004;
+ *((unsigned long *)&__m128i_result[1]) = 0xff01ff010000ff7d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000fffc;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff00fc0000ff02;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xff01ff040000fffe;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffacdb6dbecac;
+ *((unsigned long *)&__m128i_op0[0]) = 0x1f5533a694f902c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x21011f3f193d173b;
+ *((unsigned long *)&__m128i_op1[0]) = 0xff39ff37ff35ff33;
+ *((unsigned long *)&__m128i_result[1]) = 0x00fe008e009e0071;
+ *((unsigned long *)&__m128i_result[0]) = 0x001c006f00c4008d;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x9c9ca19d509ae734;
+ *((unsigned long *)&__m128i_op0[0]) = 0xd1b09480f2123460;
+ *((unsigned long *)&__m128i_op1[1]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_op1[0]) = 0x9c9c9c9c9c9c9c9c;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000001fffeff98;
+ *((unsigned long *)&__m128i_result[0]) = 0x0014ffe4ff76ffc4;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x34947b4b11684f92;
+ *((unsigned long *)&__m128i_op1[0]) = 0xee297a731e5c5f86;
+ *((unsigned long *)&__m128i_result[1]) = 0xff6cffb5ff98ff6e;
+ *((unsigned long *)&__m128i_result[0]) = 0xffd7ff8dffa4ff7a;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffff8f8dada;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffff01018888;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffff3ea5016b;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffefffe3f6fb04d;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000d96f;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000001ffffd83b;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000f0009d3c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000016fff9d3d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000bd0;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000000007f0;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000916c;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000010000954d;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000100010000fe01;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000050000007b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000500000005;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffbffffff85;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffc0000fdfc;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000032;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000032;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffff80df00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xa5c4c774856ba837;
+ *((unsigned long *)&__m128i_op1[0]) = 0x2a569f8081c3bbe9;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff6080ffff4417;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000063b2ac27;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffaa076aeb;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffff53d9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff0001ffff9515;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffff0000ffff;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00060fbf00040fbf;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00020fbf00000fbf;
+ *((unsigned long *)&__m128i_op1[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffac5cffffac5c;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffac5cffffac5c;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffaefffbffaefffb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffaefffbffaefffb;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff0005ffff0005;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff000500000004;
+ __m128i_out = __lsx_vsubwev_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000a1630000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000a1630000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001fffffffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000001fd0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000001fd0;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xff7ffffef77fffdd;
+ *((unsigned long *)&__m128i_op1[0]) = 0xf77edf9cffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000008800022;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000001;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffda6f;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffe3d7;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x00000000ffffda6e;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffe3d6;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x003fffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000807f00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x80006b0080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff00011cf0c569;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc0000002b0995850;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffe30f3a97;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffcfe72830;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ff9f5c25;
+ *((unsigned long *)&__m128i_op0[0]) = 0x58fa6b4000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000000ff9f5c25;
+ *((unsigned long *)&__m128i_op1[0]) = 0x58fa6b4000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xcda585aebbb2836a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000080808080;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffc4cdfd16;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ int_out = __lsx_vpickve2gr_w (__m128i_op0, 0x2);
+ *((unsigned long *)&__m128i_op0[1]) = 0x801dd5cb0004e058;
+ *((unsigned long *)&__m128i_op0[0]) = 0x77eb15638eeb5fc2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000200000001b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000004e03d;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000008eeb5fc2;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000001;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000c0000bd49;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000c7fff000c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfffff00010000fff;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000100c6ffef00d;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000006f00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000c00000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000006f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000bfffffffe0f6;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffcfffcfffcfffd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffcfffdfffcfffd;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffdfffcfffd;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffff7e00000081;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0a0a0a0a0a0a0a0a;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff6080ffff4417;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0a0aa9890a0ac5f3;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op0[0]) = 0x370bdfecffecffec;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0010001000100010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x36fbdfdcffdcffdc;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffefffefffeffff;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000a752a55;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0a753500a9fa0d06;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xf589caff5605f2fa;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x087c000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000087c;
+ *((unsigned long *)&__m128i_op1[1]) = 0x10f8000100000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000001000010f8;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffefffff784;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffff000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000000000000;
+ __m128i_out = __lsx_vsubwev_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c
new file mode 100644
index 0000000..39ebff1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c
@@ -0,0 +1,326 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x3ff0000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x40f3fa0000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc485edbcc0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x003f000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007c000d00400000;
+ __m128i_out = __lsx_vsubwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x841f000fc28f801f;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007c0000003e0080;
+ __m128i_out = __lsx_vsubwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vsubwod_h_b (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000017fff9000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000210011084;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000007fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000001001;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0xff80000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff8000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff8000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffffffffefefe6a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000c2bac2c2;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffc2ba;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000027f000000fe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe80000000000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000018000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000001f0a;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000ffff7a53;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000000ffffffff;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000ff0000ff86;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffa6ff91fdd8ef77;
+ *((unsigned long *)&__m128i_op1[0]) = 0x061202bffb141c38;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000005a00000228;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffff9ee000004ec;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000001fe02000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000002000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000001fe02000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x30eb020302101b03;
+ *((unsigned long *)&__m128i_op0[0]) = 0x020310d0c0030220;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000002345454;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00000000c0dec4ca;
+ *((unsigned long *)&__m128i_result[1]) = 0x000030ebffffffdc;
+ *((unsigned long *)&__m128i_result[0]) = 0x00000203ffffff25;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x380fdfdfc0000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffc7f100004000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_h (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00005dcbe7e830c0;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000015d926c7;
+ *((unsigned long *)&__m128i_op1[0]) = 0x000000000000e41b;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000005dcb;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000014;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00f0008100800080;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00f000807000009e;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003c853c843c87e;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000ec382e;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000ec382d;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfcfcfcfcfcfcfcfd;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfcfcfcfcfcfc0000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00009c7c00007176;
+ *((unsigned long *)&__m128i_result[1]) = 0xfffffffffcfcfcfc;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffffffffcfc6080;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xc0b4d1a5f8babad3;
+ *((unsigned long *)&__m128i_op0[0]) = 0xbbc8ecc5f3ced5f3;
+ *((unsigned long *)&__m128i_op1[1]) = 0xffaefffbffaefffb;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffaefffbffaefffb;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffc105d1aa;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffbc19ecca;
+ __m128i_out = __lsx_vsubwod_d_w (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000101fd01fe;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000fe00ff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0001000100010001;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfffff0000000ad3d;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffff000fffff000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x1000100010001000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xefffdffff0009d3d;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ff0000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffff00ffffff01;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100010001007c;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000100010001007c;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x5f675e96e29a5a60;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00fe000100cf005f;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x5e695e95e1cb5a01;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7efefefe82010201;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_q_d (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c
new file mode 100644
index 0000000..62837f1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c
@@ -0,0 +1,308 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int
+main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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 *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe07e5fefefdddfe;
+ *((unsigned long *)&__m128i_op1[0]) = 0x00020100fedd0c00;
+ *((unsigned long *)&__m128i_result[1]) = 0xff02ff1bff02ff23;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000ffffff02fff4;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfffefff6fff80002;
+ *((unsigned long *)&__m128i_op1[1]) = 0x82c53a0000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc72ef153fc02fdf7;
+ *((unsigned long *)&__m128i_result[1]) = 0x007d00c500ff00ff;
+ *((unsigned long *)&__m128i_result[0]) = 0x0038000e0003ff03;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x000000000000007b;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x007f000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x007f000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_h_bu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000040000000400;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000000000010;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff800000000000;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfc01fd1300000001;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe00fd1400010000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000000fffff800;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000000000ffff;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000200000002;
+ *((unsigned long *)&__m128i_op1[1]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_op1[0]) = 0xfe813f00fe813f00;
+ *((unsigned long *)&__m128i_result[1]) = 0xffff017fffff017f;
+ *((unsigned long *)&__m128i_result[0]) = 0xffff017fffff017f;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9c7c266e71768fa4;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x00009c7c00007176;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0001000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000100000000;
+ __m128i_out = __lsx_vsubwod_w_hu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000800000008;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000009;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000897957687;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000408;
+ *((unsigned long *)&__m128i_op1[1]) = 0x7fff0007e215b122;
+ *((unsigned long *)&__m128i_op1[0]) = 0x7ffeffff7bfff828;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffff80010001;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffff80010001;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x00000af555555555;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00000af555555555;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000af5;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000af5;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x2e34594c3b000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x000000002e34594c;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vsubwod_d_wu (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000036280001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x42a0000042a02001;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000036280001;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xd0b1ffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x9d519ee8d2d84f1d;
+ *((unsigned long *)&__m128i_op1[1]) = 0x8644ffff0000ffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000ffff0000fffe;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x4a6d0000ffff0000;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x82c539ffffffffff;
+ *((unsigned long *)&__m128i_op1[0]) = 0xc72df14afbfafdf9;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7d3ac60000000000;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000010000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x00ff00ff00fe00ff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000000100000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000000000010000;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op0[0]) = 0xfeffffffffffffff;
+ *((unsigned long *)&__m128i_op1[1]) = 0x00000fffffffe000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0000102020204000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfefff00000001fff;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0003000300000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_result[0]) = 0xfffcfffd00000000;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ *((unsigned long *)&__m128i_op0[1]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op0[0]) = 0x6363636363636363;
+ *((unsigned long *)&__m128i_op1[1]) = 0x0000000200000000;
+ *((unsigned long *)&__m128i_op1[0]) = 0x0002000200000001;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x6363636163636363;
+ __m128i_out = __lsx_vsubwod_q_du (__m128i_op0, __m128i_op1);
+ ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxor.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxor.c
new file mode 100644
index 0000000..72fa971
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxor.c
@@ -0,0 +1,79 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x00000000f4012ceb;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x00000000f4012ceb;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_result[0]) = 0xffffffffffffffff;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000000000000;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x3ff0000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x40f3fa0000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000001;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x3ff0000000000001;
+ *((unsigned long*)& __m128i_result[0]) = 0x40f3fa0000000000;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op1[0]) = 0x0000000080000068;
+ *((unsigned long*)& __m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[0]) = 0x0000000080000068;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000ffff53d9;
+ *((unsigned long*)& __m128i_op0[0]) = 0xff000001ffff9515;
+ *((unsigned long*)& __m128i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long*)& __m128i_op1[0]) = 0xffff0001ffff9514;
+ *((unsigned long*)& __m128i_result[1]) = 0xffffffff0000ac26;
+ *((unsigned long*)& __m128i_result[0]) = 0x00ff000000000001;
+ __m128i_out = __lsx_vxor_v(__m128i_op0,__m128i_op1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c
new file mode 100644
index 0000000..cc823d4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vxori.c
@@ -0,0 +1,67 @@
+/* { dg-do run } */
+/* { dg-options "-mlsx -w -fno-strict-aliasing" } */
+#include "../simd_correctness_check.h"
+#include <lsxintrin.h>
+
+int main ()
+{
+ __m128i __m128i_op0, __m128i_op1, __m128i_op2, __m128i_out, __m128i_result;
+ __m128 __m128_op0, __m128_op1, __m128_op2, __m128_out, __m128_result;
+ __m128d __m128d_op0, __m128d_op1, __m128d_op2, __m128d_out, __m128d_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*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x0404040404040404;
+ *((unsigned long*)& __m128i_result[0]) = 0x0404040404040404;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0x4);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000001000100;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000001000100;
+ *((unsigned long*)& __m128i_result[1]) = 0x5a5a5a5a5b5a5b5a;
+ *((unsigned long*)& __m128i_result[0]) = 0x5a5a5a5a5b5a5b5a;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0x5a);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0xe3e3e3e3e3e3e3e3;
+ *((unsigned long*)& __m128i_result[0]) = 0xe3e3e3e3e3e3e3e3;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0xe3);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0020002000200020;
+ *((unsigned long*)& __m128i_result[1]) = 0x9a9a9a9a9a9a9a9a;
+ *((unsigned long*)& __m128i_result[0]) = 0x9aba9aba9aba9aba;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0x9a);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long*)& __m128i_result[1]) = 0x9090909090909090;
+ *((unsigned long*)& __m128i_result[0]) = 0x9090909090909090;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0x90);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ *((unsigned long*)& __m128i_op0[1]) = 0x00000000b81c8382;
+ *((unsigned long*)& __m128i_op0[0]) = 0x0000000077af9450;
+ *((unsigned long*)& __m128i_result[1]) = 0xf1f1f1f149ed7273;
+ *((unsigned long*)& __m128i_result[0]) = 0xf1f1f1f1865e65a1;
+ __m128i_out = __lsx_vxori_b(__m128i_op0,0xf1);
+ ASSERTEQ_64(__LINE__, __m128i_result, __m128i_out);
+
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h b/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
new file mode 100644
index 0000000..eb7fbd5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/simd_correctness_check.h
@@ -0,0 +1,54 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ASSERTEQ_64(line, ref, res) \
+ do \
+ { \
+ int fail = 0; \
+ for (size_t i = 0; i < sizeof (res) / sizeof (res[0]); ++i) \
+ { \
+ long *temp_ref = &ref[i], *temp_res = &res[i]; \
+ if (abs (*temp_ref - *temp_res) > 0) \
+ { \
+ printf (" error: %s at line %ld , expected " #ref \
+ "[%ld]:0x%lx, got: 0x%lx\n", \
+ __FILE__, line, i, *temp_ref, *temp_res); \
+ fail = 1; \
+ } \
+ } \
+ if (fail == 1) \
+ abort (); \
+ } \
+ while (0)
+
+#define ASSERTEQ_32(line, ref, res) \
+ do \
+ { \
+ int fail = 0; \
+ for (size_t i = 0; i < sizeof (res) / sizeof (res[0]); ++i) \
+ { \
+ int *temp_ref = &ref[i], *temp_res = &res[i]; \
+ if (abs (*temp_ref - *temp_res) > 0) \
+ { \
+ printf (" error: %s at line %ld , expected " #ref \
+ "[%ld]:0x%x, got: 0x%x\n", \
+ __FILE__, line, i, *temp_ref, *temp_res); \
+ fail = 1; \
+ } \
+ } \
+ if (fail == 1) \
+ abort (); \
+ } \
+ while (0)
+
+#define ASSERTEQ_int(line, ref, res) \
+ do \
+ { \
+ if (ref != res) \
+ { \
+ printf (" error: %s at line %ld , expected %d, got %d\n", __FILE__, \
+ line, ref, res); \
+ } \
+ } \
+ while (0)
diff --git a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
index 394459c..50e4435 100644
--- a/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
+++ b/gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options " -Os -march=rv32e_zca_zcmp -mabi=ilp32e -mcmodel=medlow -fno-shrink-wrap-separate" } */
+/* { dg-options " -Os -march=rv32e_zca_zcmp -mabi=ilp32e -mcmodel=medlow" } */
/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-O2" "-Og" "-O3" "-Oz" "-flto"} } */
/* { dg-final { check-function-bodies "**" "" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
index f00338a..ea562b7 100644
--- a/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
+++ b/gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options " -Os -march=rv32imaf_zca_zcmp -mabi=ilp32f -mcmodel=medlow -fno-shrink-wrap-separate" }*/
+/* { dg-options " -Os -march=rv32imaf_zca_zcmp -mabi=ilp32f -mcmodel=medlow" }*/
/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-O2" "-Og" "-O3" "-Oz" "-flto"} } */
/* { dg-final { check-function-bodies "**" "" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c
index e05226c..922be4d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-1.c
@@ -18,6 +18,8 @@
TEST (TYPE, mul, *) \
TEST (TYPE, div, /)
+#define TEST_TYPE2(TYPE) TEST (TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int8_t) \
TEST_TYPE (uint8_t) \
@@ -27,6 +29,14 @@
TEST_TYPE (uint32_t) \
TEST_TYPE (int64_t) \
TEST_TYPE (uint64_t) \
+ TEST_TYPE2 (int8_t) \
+ TEST_TYPE2 (uint8_t) \
+ TEST_TYPE2 (int16_t) \
+ TEST_TYPE2 (uint16_t) \
+ TEST_TYPE2 (int32_t) \
+ TEST_TYPE2 (uint32_t) \
+ TEST_TYPE2 (int64_t) \
+ TEST_TYPE2 (uint64_t) \
TEST_TYPE (_Float16) \
TEST_TYPE (float) \
TEST_TYPE (double)
@@ -34,6 +44,7 @@
TEST_ALL
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 8 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 11 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 11 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_MUL" 11 "optimized" } } */
@@ -42,6 +53,8 @@ TEST_ALL
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c
index 2b73536..986a70e 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-2.c
@@ -4,6 +4,7 @@
#include "cond_arith-1.c"
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 8 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 3 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 8 "optimized" } } */
@@ -21,6 +22,8 @@
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c
index 5fdeb38..a97d34f 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-3.c
@@ -20,6 +20,8 @@
TEST (DATA_TYPE, PRED_TYPE, mul, *) \
TEST (DATA_TYPE, PRED_TYPE, div, /)
+#define TEST_TYPE2(DATA_TYPE, PRED_TYPE) TEST (DATA_TYPE, PRED_TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int32_t, int8_t) \
TEST_TYPE (uint32_t, int8_t) \
@@ -31,6 +33,16 @@
TEST_TYPE (uint64_t, int16_t) \
TEST_TYPE (int64_t, int32_t) \
TEST_TYPE (uint64_t, int32_t) \
+ TEST_TYPE2 (int32_t, int8_t) \
+ TEST_TYPE2 (uint32_t, int8_t) \
+ TEST_TYPE2 (int32_t, int16_t) \
+ TEST_TYPE2 (uint32_t, int16_t) \
+ TEST_TYPE2 (int64_t, int8_t) \
+ TEST_TYPE2 (uint64_t, int8_t) \
+ TEST_TYPE2 (int64_t, int16_t) \
+ TEST_TYPE2 (uint64_t, int16_t) \
+ TEST_TYPE2 (int64_t, int32_t) \
+ TEST_TYPE2 (uint64_t, int32_t) \
TEST_TYPE (_Float16, int8_t) \
TEST_TYPE (float, int8_t) \
TEST_TYPE (float, int16_t) \
@@ -41,6 +53,7 @@
TEST_ALL
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 10 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 10 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 16 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 16 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_MUL" 16 "optimized" } } */
@@ -49,6 +62,8 @@ TEST_ALL
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 5 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 5 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c
index 0cbe9bb..30089b7 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-4.c
@@ -4,6 +4,7 @@
#include "cond_arith-3.c"
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 10 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 10 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 10 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 10 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_MUL" 10 "optimized" } } */
@@ -15,6 +16,8 @@
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 10 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 5 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 5 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c
index cf9c950..2f9e883 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-5.c
@@ -18,6 +18,8 @@
TEST (TYPE, mul, *) \
TEST (TYPE, div, /)
+#define TEST_TYPE2(TYPE) TEST (TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int8_t) \
TEST_TYPE (uint8_t) \
@@ -27,6 +29,14 @@
TEST_TYPE (uint32_t) \
TEST_TYPE (int64_t) \
TEST_TYPE (uint64_t) \
+ TEST_TYPE2 (int8_t) \
+ TEST_TYPE2 (uint8_t) \
+ TEST_TYPE2 (int16_t) \
+ TEST_TYPE2 (uint16_t) \
+ TEST_TYPE2 (int32_t) \
+ TEST_TYPE2 (uint32_t) \
+ TEST_TYPE2 (int64_t) \
+ TEST_TYPE2 (uint64_t) \
TEST_TYPE (_Float16) \
TEST_TYPE (float) \
TEST_TYPE (double)
@@ -34,6 +44,7 @@
TEST_ALL
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 8 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 11 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 11 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_MUL" 11 "optimized" } } */
@@ -42,6 +53,8 @@ TEST_ALL
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c
index 487cf51..13a230c 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-6.c
@@ -4,6 +4,7 @@
#include "cond_arith-5.c"
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 8 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 3 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 8 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_SUB" 8 "optimized" } } */
@@ -21,6 +22,8 @@
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c
index 8d4fa88..e43f040 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-7.c
@@ -21,11 +21,17 @@
TEST (TYPE, mul, *) \
TEST (TYPE, div, /)
+#define TEST_TYPE2(TYPE) TEST (TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int32_t) \
TEST_TYPE (uint32_t) \
TEST_TYPE (int64_t) \
TEST_TYPE (uint64_t) \
+ TEST_TYPE2 (int32_t) \
+ TEST_TYPE2 (uint32_t) \
+ TEST_TYPE2 (int64_t) \
+ TEST_TYPE2 (uint64_t) \
TEST_TYPE (_Float16) \
TEST_TYPE (float) \
TEST_TYPE (double)
@@ -33,6 +39,7 @@
TEST_ALL
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 4 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 4 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 3 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_ADD" 4 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_ADD" 3 "optimized" } } */
@@ -44,6 +51,8 @@ TEST_ALL
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 2 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 2 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c
index d191d4c..eac77e0 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-8.c
@@ -26,6 +26,8 @@
TEST (DATA_TYPE, OTHER_TYPE, mul, *) \
TEST (DATA_TYPE, OTHER_TYPE, div, /)
+#define TEST_TYPE2(DATA_TYPE, OTHER_TYPE) TEST (DATA_TYPE, OTHER_TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int32_t, int8_t) \
TEST_TYPE (int32_t, int16_t) \
@@ -37,6 +39,16 @@
TEST_TYPE (uint64_t, int8_t) \
TEST_TYPE (uint64_t, int16_t) \
TEST_TYPE (uint64_t, int32_t) \
+ TEST_TYPE2 (int32_t, int8_t) \
+ TEST_TYPE2 (int32_t, int16_t) \
+ TEST_TYPE2 (uint32_t, int8_t) \
+ TEST_TYPE2 (uint32_t, int16_t) \
+ TEST_TYPE2 (int64_t, int8_t) \
+ TEST_TYPE2 (int64_t, int16_t) \
+ TEST_TYPE2 (int64_t, int32_t) \
+ TEST_TYPE2 (uint64_t, int8_t) \
+ TEST_TYPE2 (uint64_t, int16_t) \
+ TEST_TYPE2 (uint64_t, int32_t) \
TEST_TYPE (_Float16, int8_t) \
TEST_TYPE (float, int8_t) \
TEST_TYPE (float, int16_t) \
@@ -53,11 +65,14 @@ TEST_ALL
/* { dg-final { scan-tree-dump-times "\.COND_LEN_SUB" 22 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_MUL" 22 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_DIV" 40 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "\.COND_LEN_MOD" 40 "optimized" } } */
/* { dg-final { scan-tree-dump-times "\.COND_LEN_RDIV" 22 "optimized" } } */
-/* { dg-final { scan-assembler-times {vadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+} 104 } } */
+/* { dg-final { scan-assembler-times {vadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+} 114 } } */
/* { dg-final { scan-assembler-times {vsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 40 } } */
/* { dg-final { scan-assembler-times {vmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 40 } } */
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 40 } } */
+/* { dg-final { scan-assembler-times {vrem\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 20 } } */
+/* { dg-final { scan-assembler-times {vremu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 20 } } */
/* { dg-final { scan-assembler-times {vfadd\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 22 } } */
/* { dg-final { scan-assembler-times {vfsub\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 22 } } */
/* { dg-final { scan-assembler-times {vfmul\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 22 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c
index 38bb613..fc8b351 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_arith-9.c
@@ -18,6 +18,8 @@
TEST (TYPE, mul, *) \
TEST (TYPE, div, /)
+#define TEST_TYPE2(TYPE) TEST (TYPE, rem, %)
+
#define TEST_ALL \
TEST_TYPE (int8_t) \
TEST_TYPE (uint8_t) \
@@ -26,7 +28,14 @@
TEST_TYPE (int32_t) \
TEST_TYPE (uint32_t) \
TEST_TYPE (int64_t) \
- TEST_TYPE (uint64_t) \
+ TEST_TYPE2 (int8_t) \
+ TEST_TYPE2 (uint8_t) \
+ TEST_TYPE2 (int16_t) \
+ TEST_TYPE2 (uint16_t) \
+ TEST_TYPE2 (int32_t) \
+ TEST_TYPE2 (uint32_t) \
+ TEST_TYPE2 (int64_t) \
+ TEST_TYPE2 (uint64_t) \
TEST_TYPE (_Float16) \
TEST_TYPE (float) \
TEST_TYPE (double)
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c
new file mode 100644
index 0000000..be37854
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-run.c
@@ -0,0 +1,99 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "-std=c99 -fno-vect-cost-model --param=riscv-autovec-preference=fixed-vlmax -ffast-math" } */
+
+#include "cond_copysign-template.h"
+
+#include <assert.h>
+
+#define SZ 512
+
+#define EPS 1e-6
+
+#define INIT_PRED() \
+ int pred[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ pred[i] = i % 3; \
+ }
+
+#define RUN(TYPE, VAL) \
+ TYPE a##TYPE[SZ]; \
+ TYPE b##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a##TYPE[i] = i; \
+ b##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ copysign_##TYPE (a##TYPE, a##TYPE, b##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a##TYPE[i] - ((i & 1) ? i : -i)) < EPS);
+
+#define RUN2(TYPE, VAL) \
+ TYPE a2##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a2##TYPE[i] = i; \
+ copysigns_##TYPE (a2##TYPE, a2##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a2##TYPE[i] + i) < EPS);
+
+#define RUN3(TYPE, VAL) \
+ TYPE a3##TYPE[SZ]; \
+ TYPE b3##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a3##TYPE[i] = (i & 1) ? -i : i; \
+ b3##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ xorsign_##TYPE (a3##TYPE, a3##TYPE, b3##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a3##TYPE[i] + i) < EPS);
+
+#define RUN4(TYPE, VAL) \
+ TYPE a4##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a4##TYPE[i] = -i; \
+ xorsigns_##TYPE (a4##TYPE, a4##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a4##TYPE[i] - i) < EPS);
+
+#define RUN5(TYPE, VAL) \
+ TYPE a5##TYPE[SZ]; \
+ TYPE b5##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a5##TYPE[i] = i; \
+ b5##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ ncopysign_##TYPE (a5##TYPE, a5##TYPE, b##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] \
+ || __builtin_fabs (-a5##TYPE[i] - ((i & 1) ? i : -i)) < EPS);
+
+#define RUN6(TYPE, VAL) \
+ TYPE a6##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a6##TYPE[i] = i; \
+ ncopysigns_##TYPE (a6##TYPE, a6##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (-a6##TYPE[i] + i) < EPS);
+
+#define RUN_ALL() \
+ RUN (float, 5) \
+ RUN (double, 6) \
+ RUN2 (float, 11) \
+ RUN2 (double, 12) \
+ RUN3 (float, 16) \
+ RUN3 (double, 18) \
+ RUN4 (float, 17) \
+ RUN4 (double, 19) \
+ RUN5 (float, 123) \
+ RUN5 (double, 523) \
+ RUN6 (float, 777) \
+ RUN6 (double, 877)
+
+int
+main ()
+{
+ INIT_PRED ()
+ RUN_ALL ()
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
new file mode 100644
index 0000000..cef531b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv32gcv.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-std=c99 -O3 -fno-vect-cost-model -march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=fixed-vlmax -ffast-math" } */
+
+#include "cond_copysign-template.h"
+
+/* { dg-final { scan-assembler-times {\tvfsgnj\.vv} 6 } } */
+/* 1. The vectorizer wraps scalar variants of copysign into vector constants which
+ expand cannot handle currently.
+ 2. match.pd convert .COPYSIGN (1, b) + COND_MUL to AND + XOR currently. */
+/* { dg-final { scan-assembler-times {\tvfsgnjx\.vv} 6 { xfail riscv*-*-* } } } */
+/* { dg-final { scan-assembler-times {\tvfsgnjn\.vv} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c
new file mode 100644
index 0000000..cc2aa4d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-rv64gcv.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-std=c99 -O3 -fno-vect-cost-model -march=rv64gcv_zvfh -mabi=lp64d --param=riscv-autovec-preference=fixed-vlmax -ffast-math" } */
+
+#include "cond_copysign-template.h"
+
+/* { dg-final { scan-assembler-times {\tvfsgnj\.vv} 6 } } */
+/* 1. The vectorizer wraps scalar variants of copysign into vector constants which
+ expand cannot handle currently.
+ 2. match.pd convert .COPYSIGN (1, b) + COND_MUL to AND + XOR currently. */
+/* { dg-final { scan-assembler-times {\tvfsgnjx\.vv} 6 { xfail riscv*-*-* } } } */
+/* { dg-final { scan-assembler-times {\tvfsgnjn\.vv} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h
new file mode 100644
index 0000000..4191500
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-template.h
@@ -0,0 +1,81 @@
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void copysign_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, \
+ TYPE *restrict b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] = pred[i] ? __builtin_copysign##SUFFIX (a[i], b[i]) : dst[i]; \
+ }
+
+#define TEST_TYPE2(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void copysigns_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, TYPE b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] = pred[i] ? __builtin_copysign##SUFFIX (a[i], b) : dst[i]; \
+ }
+
+#define TEST_TYPE3(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void xorsign_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, \
+ TYPE *restrict b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] \
+ = pred[i] ? a[i] * __builtin_copysign##SUFFIX (1.0, b[i]) : dst[i]; \
+ }
+
+#define TEST_TYPE4(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void xorsigns_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, TYPE b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] = pred[i] ? a[i] * __builtin_copysign##SUFFIX (1.0, b) : dst[i]; \
+ }
+
+#define TEST_TYPE5(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void ncopysign_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, \
+ TYPE *restrict b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] = pred[i] ? -__builtin_copysign##SUFFIX (a[i], b[i]) : dst[i]; \
+ }
+
+#define TEST_TYPE6(TYPE, SUFFIX) \
+ __attribute__ ((noipa)) void ncopysigns_##TYPE (TYPE *restrict dst, \
+ TYPE *restrict a, TYPE b, \
+ int *restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ dst[i] = pred[i] ? -__builtin_copysign##SUFFIX (a[i], b) : dst[i]; \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (_Float16, f16) \
+ TEST_TYPE (float, f) \
+ TEST_TYPE (double, ) \
+ TEST_TYPE2 (_Float16, f16) \
+ TEST_TYPE2 (float, f) \
+ TEST_TYPE2 (double, ) \
+ TEST_TYPE3 (_Float16, f16) \
+ TEST_TYPE3 (float, f) \
+ TEST_TYPE3 (double, ) \
+ TEST_TYPE4 (_Float16, f16) \
+ TEST_TYPE4 (float, f) \
+ TEST_TYPE4 (double, ) \
+ TEST_TYPE5 (_Float16, f16) \
+ TEST_TYPE5 (float, f) \
+ TEST_TYPE5 (double, ) \
+ TEST_TYPE6 (_Float16, f16) \
+ TEST_TYPE6 (float, f) \
+ TEST_TYPE6 (double, )
+
+TEST_ALL ()
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c
new file mode 100644
index 0000000..6e337f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_copysign-zvfh-run.c
@@ -0,0 +1,93 @@
+/* { dg-do run { target { riscv_vector && riscv_zvfh_hw } } } */
+/* { dg-additional-options "-std=c99 -fno-vect-cost-model --param=riscv-autovec-preference=fixed-vlmax -ffast-math" } */
+
+#include "cond_copysign-template.h"
+
+#include <assert.h>
+
+#define SZ 512
+
+#define EPS 1e-6
+
+#define INIT_PRED() \
+ int pred[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ pred[i] = i % 3; \
+ }
+
+#define RUN(TYPE, VAL) \
+ TYPE a##TYPE[SZ]; \
+ TYPE b##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a##TYPE[i] = i; \
+ b##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ copysign_##TYPE (a##TYPE, a##TYPE, b##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a##TYPE[i] - ((i & 1) ? i : -i)) < EPS);
+
+#define RUN2(TYPE, VAL) \
+ TYPE a2##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a2##TYPE[i] = i; \
+ copysigns_##TYPE (a2##TYPE, a2##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a2##TYPE[i] + i) < EPS);
+
+#define RUN3(TYPE, VAL) \
+ TYPE a3##TYPE[SZ]; \
+ TYPE b3##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a3##TYPE[i] = (i & 1) ? -i : i; \
+ b3##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ xorsign_##TYPE (a3##TYPE, a3##TYPE, b3##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a3##TYPE[i] + i) < EPS);
+
+#define RUN4(TYPE, VAL) \
+ TYPE a4##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a4##TYPE[i] = -i; \
+ xorsigns_##TYPE (a4##TYPE, a4##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (a4##TYPE[i] - i) < EPS);
+
+#define RUN5(TYPE, VAL) \
+ TYPE a5##TYPE[SZ]; \
+ TYPE b5##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ { \
+ a5##TYPE[i] = i; \
+ b5##TYPE[i] = (i & 1) ? VAL : -VAL; \
+ } \
+ ncopysign_##TYPE (a5##TYPE, a5##TYPE, b##TYPE, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] \
+ || __builtin_fabs (-a5##TYPE[i] - ((i & 1) ? i : -i)) < EPS);
+
+#define RUN6(TYPE, VAL) \
+ TYPE a6##TYPE[SZ]; \
+ for (int i = 0; i < SZ; i++) \
+ a6##TYPE[i] = i; \
+ ncopysigns_##TYPE (a6##TYPE, a6##TYPE, -VAL, pred, SZ); \
+ for (int i = 0; i < SZ; i++) \
+ assert (!pred[i] || __builtin_fabs (-a6##TYPE[i] + i) < EPS);
+
+#define RUN_ALL() \
+ RUN (_Float16, 5) \
+ RUN2 (_Float16, 11) \
+ RUN3 (_Float16, 16) \
+ RUN4 (_Float16, 17) \
+ RUN5 (_Float16, 123) \
+ RUN6 (_Float16, 777)
+
+int
+main ()
+{
+ INIT_PRED ()
+ RUN_ALL ()
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-1.c
deleted file mode 100644
index af1a261..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-1.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-
-#include <stdint-gcc.h>
-
-#define bit_and(A, B) ((A) & (B))
-#define bit_or(A, B) ((A) | (B))
-#define bit_xor(A, B) ((A) ^ (B))
-#define bit_bic(A, B) ((A) & ~(B))
-
-#define DEF_LOOP(TYPE, OP) \
- void __attribute__ ((noinline, noclone)) \
- test_##TYPE##_##OP (TYPE *__restrict r, \
- TYPE *__restrict a, \
- TYPE *__restrict b, \
- TYPE *__restrict c, int n) \
- { \
- for (int i = 0; i < n; ++i) \
- r[i] = a[i] < 20 ? OP (b[i], c[i]) : b[i]; \
- }
-
-#define TEST_TYPE(T, TYPE) \
- T (TYPE, bit_and) \
- T (TYPE, bit_or) \
- T (TYPE, bit_xor) \
- T (TYPE, bit_bic)
-
-#define TEST_ALL(T) \
- TEST_TYPE (T, int8_t) \
- TEST_TYPE (T, uint8_t) \
- TEST_TYPE (T, int16_t) \
- TEST_TYPE (T, uint16_t) \
- TEST_TYPE (T, int32_t) \
- TEST_TYPE (T, uint32_t) \
- TEST_TYPE (T, int64_t) \
- TEST_TYPE (T, uint64_t)
-
-TEST_ALL (DEF_LOOP)
-
-/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
-/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
-/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
-/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-2.c
deleted file mode 100644
index 5f7614d..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-2.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-
-#include <stdint-gcc.h>
-
-#define bit_and(A, B) ((A) & (B))
-#define bit_or(A, B) ((A) | (B))
-#define bit_xor(A, B) ((A) ^ (B))
-#define bit_bic(A, B) ((A) & ~(B))
-
-#define DEF_LOOP(TYPE, OP) \
- void __attribute__ ((noinline, noclone)) \
- test_##TYPE##_##OP (TYPE *__restrict r, \
- TYPE *__restrict a, \
- TYPE *__restrict b, \
- TYPE *__restrict c, int n) \
- { \
- for (int i = 0; i < n; ++i) \
- r[i] = a[i] < 20 ? OP (b[i], c[i]) : c[i]; \
- }
-
-#define TEST_TYPE(T, TYPE) \
- T (TYPE, bit_and) \
- T (TYPE, bit_or) \
- T (TYPE, bit_xor) \
- T (TYPE, bit_bic)
-
-#define TEST_ALL(T) \
- TEST_TYPE (T, int8_t) \
- TEST_TYPE (T, uint8_t) \
- TEST_TYPE (T, int16_t) \
- TEST_TYPE (T, uint16_t) \
- TEST_TYPE (T, int32_t) \
- TEST_TYPE (T, uint32_t) \
- TEST_TYPE (T, int64_t) \
- TEST_TYPE (T, uint64_t)
-
-TEST_ALL (DEF_LOOP)
-
-/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
-/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
-/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
-/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-3.c
deleted file mode 100644
index 032d12c..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-3.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-
-#include <stdint-gcc.h>
-
-#define bit_and(A, B) ((A) & (B))
-#define bit_or(A, B) ((A) | (B))
-#define bit_xor(A, B) ((A) ^ (B))
-#define bit_bic(A, B) ((A) & ~(B))
-
-#define DEF_LOOP(TYPE, OP) \
- void __attribute__ ((noinline, noclone)) \
- test_##TYPE##_##OP (TYPE *__restrict r, \
- TYPE *__restrict a, \
- TYPE *__restrict b, \
- TYPE *__restrict c, int n) \
- { \
- for (int i = 0; i < n; ++i) \
- r[i] = a[i] < 20 ? OP (b[i], c[i]) : a[i]; \
- }
-
-#define TEST_TYPE(T, TYPE) \
- T (TYPE, bit_and) \
- T (TYPE, bit_or) \
- T (TYPE, bit_xor) \
- T (TYPE, bit_bic)
-
-#define TEST_ALL(T) \
- TEST_TYPE (T, int8_t) \
- TEST_TYPE (T, uint8_t) \
- TEST_TYPE (T, int16_t) \
- TEST_TYPE (T, uint16_t) \
- TEST_TYPE (T, int32_t) \
- TEST_TYPE (T, uint32_t) \
- TEST_TYPE (T, int64_t) \
- TEST_TYPE (T, uint64_t)
-
-TEST_ALL (DEF_LOOP)
-
-/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
-/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
-/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
-/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-4.c
deleted file mode 100644
index e8d9337..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-4.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-
-#include <stdint-gcc.h>
-
-#define bit_and(A, B) ((A) & (B))
-#define bit_or(A, B) ((A) | (B))
-#define bit_xor(A, B) ((A) ^ (B))
-#define bit_bic(A, B) ((A) & ~(B))
-
-#define DEF_LOOP(TYPE, OP) \
- void __attribute__ ((noinline, noclone)) \
- test_##TYPE##_##OP (TYPE *__restrict r, \
- TYPE *__restrict a, \
- TYPE *__restrict b, \
- TYPE *__restrict c, int n) \
- { \
- for (int i = 0; i < n; ++i) \
- r[i] = a[i] < 20 ? OP (b[i], c[i]) : 42; \
- }
-
-#define TEST_TYPE(T, TYPE) \
- T (TYPE, bit_and) \
- T (TYPE, bit_or) \
- T (TYPE, bit_xor) \
- T (TYPE, bit_bic)
-
-#define TEST_ALL(T) \
- TEST_TYPE (T, int8_t) \
- TEST_TYPE (T, uint8_t) \
- TEST_TYPE (T, int16_t) \
- TEST_TYPE (T, uint16_t) \
- TEST_TYPE (T, int32_t) \
- TEST_TYPE (T, uint32_t) \
- TEST_TYPE (T, int64_t) \
- TEST_TYPE (T, uint64_t)
-
-TEST_ALL (DEF_LOOP)
-
-/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
-/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
-/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
-/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-5.c
deleted file mode 100644
index c59ef51..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical-5.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* { dg-do compile } */
-/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-
-#include <stdint-gcc.h>
-
-#define bit_and(A, B) ((A) & (B))
-#define bit_or(A, B) ((A) | (B))
-#define bit_xor(A, B) ((A) ^ (B))
-#define bit_bic(A, B) ((A) & ~(B))
-
-#define DEF_LOOP(TYPE, OP) \
- void __attribute__ ((noinline, noclone)) \
- test_##TYPE##_##OP (TYPE *__restrict r, \
- TYPE *__restrict a, \
- TYPE *__restrict b, \
- TYPE *__restrict c, int n) \
- { \
- for (int i = 0; i < n; ++i) \
- r[i] = a[i] < 20 ? OP (b[i], c[i]) : 0; \
- }
-
-#define TEST_TYPE(T, TYPE) \
- T (TYPE, bit_and) \
- T (TYPE, bit_or) \
- T (TYPE, bit_xor) \
- T (TYPE, bit_bic)
-
-#define TEST_ALL(T) \
- TEST_TYPE (T, int8_t) \
- TEST_TYPE (T, uint8_t) \
- TEST_TYPE (T, int16_t) \
- TEST_TYPE (T, uint16_t) \
- TEST_TYPE (T, int32_t) \
- TEST_TYPE (T, uint32_t) \
- TEST_TYPE (T, int64_t) \
- TEST_TYPE (T, uint64_t)
-
-TEST_ALL (DEF_LOOP)
-
-/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
-/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
-/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
-/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c
new file mode 100644
index 0000000..7034786
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-1.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define bit_and(A, B) ((A) & (B))
+#define bit_or(A, B) ((A) | (B))
+#define bit_xor(A, B) ((A) ^ (B))
+#define bit_bic(A, B) ((A) & ~(B))
+#define min(A, B) ((A) <= (B) ? (A) : (B))
+#define max(A, B) ((A) >= (B) ? (A) : (B))
+
+#define DEF_LOOP(TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ test_##TYPE##_##OP (TYPE *__restrict r, TYPE *__restrict a, \
+ TYPE *__restrict b, TYPE *__restrict c, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] < 20 ? OP (b[i], c[i]) : b[i]; \
+ }
+
+#define TEST_TYPE(T, TYPE) \
+ T (TYPE, bit_and) \
+ T (TYPE, bit_or) \
+ T (TYPE, bit_xor) \
+ T (TYPE, bit_bic) \
+ T (TYPE, min) \
+ T (TYPE, max)
+
+#define TEST_ALL(T) \
+ TEST_TYPE (T, int8_t) \
+ TEST_TYPE (T, uint8_t) \
+ TEST_TYPE (T, int16_t) \
+ TEST_TYPE (T, uint16_t) \
+ TEST_TYPE (T, int32_t) \
+ TEST_TYPE (T, uint32_t) \
+ TEST_TYPE (T, int64_t) \
+ TEST_TYPE (T, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
+/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
+/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vmin\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmax\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vminu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmaxu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c
new file mode 100644
index 0000000..44cbbe6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-2.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define bit_and(A, B) ((A) & (B))
+#define bit_or(A, B) ((A) | (B))
+#define bit_xor(A, B) ((A) ^ (B))
+#define bit_bic(A, B) ((A) & ~(B))
+#define min(A, B) ((A) <= (B) ? (A) : (B))
+#define max(A, B) ((A) >= (B) ? (A) : (B))
+
+#define DEF_LOOP(TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ test_##TYPE##_##OP (TYPE *__restrict r, TYPE *__restrict a, \
+ TYPE *__restrict b, TYPE *__restrict c, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] < 20 ? OP (b[i], c[i]) : c[i]; \
+ }
+
+#define TEST_TYPE(T, TYPE) \
+ T (TYPE, bit_and) \
+ T (TYPE, bit_or) \
+ T (TYPE, bit_xor) \
+ T (TYPE, bit_bic) \
+ T (TYPE, min) \
+ T (TYPE, max)
+
+#define TEST_ALL(T) \
+ TEST_TYPE (T, int8_t) \
+ TEST_TYPE (T, uint8_t) \
+ TEST_TYPE (T, int16_t) \
+ TEST_TYPE (T, uint16_t) \
+ TEST_TYPE (T, int32_t) \
+ TEST_TYPE (T, uint32_t) \
+ TEST_TYPE (T, int64_t) \
+ TEST_TYPE (T, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
+/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
+/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vmin\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmax\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vminu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmaxu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c
new file mode 100644
index 0000000..220a376
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-3.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define bit_and(A, B) ((A) & (B))
+#define bit_or(A, B) ((A) | (B))
+#define bit_xor(A, B) ((A) ^ (B))
+#define bit_bic(A, B) ((A) & ~(B))
+#define min(A, B) ((A) <= (B) ? (A) : (B))
+#define max(A, B) ((A) >= (B) ? (A) : (B))
+
+#define DEF_LOOP(TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ test_##TYPE##_##OP (TYPE *__restrict r, TYPE *__restrict a, \
+ TYPE *__restrict b, TYPE *__restrict c, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] < 20 ? OP (b[i], c[i]) : a[i]; \
+ }
+
+#define TEST_TYPE(T, TYPE) \
+ T (TYPE, bit_and) \
+ T (TYPE, bit_or) \
+ T (TYPE, bit_xor) \
+ T (TYPE, bit_bic) \
+ T (TYPE, min) \
+ T (TYPE, max)
+
+#define TEST_ALL(T) \
+ TEST_TYPE (T, int8_t) \
+ TEST_TYPE (T, uint8_t) \
+ TEST_TYPE (T, int16_t) \
+ TEST_TYPE (T, uint16_t) \
+ TEST_TYPE (T, int32_t) \
+ TEST_TYPE (T, uint32_t) \
+ TEST_TYPE (T, int64_t) \
+ TEST_TYPE (T, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
+/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
+/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vmin\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmax\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vminu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmaxu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c
new file mode 100644
index 0000000..0763d92
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-4.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define bit_and(A, B) ((A) & (B))
+#define bit_or(A, B) ((A) | (B))
+#define bit_xor(A, B) ((A) ^ (B))
+#define bit_bic(A, B) ((A) & ~(B))
+#define min(A, B) ((A) <= (B) ? (A) : (B))
+#define max(A, B) ((A) >= (B) ? (A) : (B))
+
+#define DEF_LOOP(TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ test_##TYPE##_##OP (TYPE *__restrict r, TYPE *__restrict a, \
+ TYPE *__restrict b, TYPE *__restrict c, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] < 20 ? OP (b[i], c[i]) : 42; \
+ }
+
+#define TEST_TYPE(T, TYPE) \
+ T (TYPE, bit_and) \
+ T (TYPE, bit_or) \
+ T (TYPE, bit_xor) \
+ T (TYPE, bit_bic) \
+ T (TYPE, min) \
+ T (TYPE, max)
+
+#define TEST_ALL(T) \
+ TEST_TYPE (T, int8_t) \
+ TEST_TYPE (T, uint8_t) \
+ TEST_TYPE (T, int16_t) \
+ TEST_TYPE (T, uint16_t) \
+ TEST_TYPE (T, int32_t) \
+ TEST_TYPE (T, uint32_t) \
+ TEST_TYPE (T, int64_t) \
+ TEST_TYPE (T, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
+/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
+/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vmin\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmax\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vminu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmaxu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c
new file mode 100644
index 0000000..304c9ee
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max-5.c
@@ -0,0 +1,49 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define bit_and(A, B) ((A) & (B))
+#define bit_or(A, B) ((A) | (B))
+#define bit_xor(A, B) ((A) ^ (B))
+#define bit_bic(A, B) ((A) & ~(B))
+#define min(A, B) ((A) <= (B) ? (A) : (B))
+#define max(A, B) ((A) >= (B) ? (A) : (B))
+
+#define DEF_LOOP(TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ test_##TYPE##_##OP (TYPE *__restrict r, TYPE *__restrict a, \
+ TYPE *__restrict b, TYPE *__restrict c, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] < 20 ? OP (b[i], c[i]) : 0; \
+ }
+
+#define TEST_TYPE(T, TYPE) \
+ T (TYPE, bit_and) \
+ T (TYPE, bit_or) \
+ T (TYPE, bit_xor) \
+ T (TYPE, bit_bic) \
+ T (TYPE, min) \
+ T (TYPE, max)
+
+#define TEST_ALL(T) \
+ TEST_TYPE (T, int8_t) \
+ TEST_TYPE (T, uint8_t) \
+ TEST_TYPE (T, int16_t) \
+ TEST_TYPE (T, uint16_t) \
+ TEST_TYPE (T, int32_t) \
+ TEST_TYPE (T, uint32_t) \
+ TEST_TYPE (T, int64_t) \
+ TEST_TYPE (T, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {vnot\.v\s+v[0-9]+,v[0-9]+} 8 } } */
+/* { dg-final { scan-assembler-times {vand\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 16 } } */
+/* { dg-final { scan-assembler-times {vor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vxor\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 8 } } */
+/* { dg-final { scan-assembler-times {vmin\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmax\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vminu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
+/* { dg-final { scan-assembler-times {vmaxu\.vv\s+v[0-9]+,v[0-9]+,v[0-9]+,v0.t} 4 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c
index e741f7d..439cc90 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-1.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-1.c
@@ -1,7 +1,7 @@
/* { dg-do run { target { riscv_vector } } } */
/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-#include "cond_logical-1.c"
+#include "cond_logical_min_max-1.c"
#define N 99
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c
index bdd697e..e7cf6a8 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-2.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-2.c
@@ -1,7 +1,7 @@
/* { dg-do run { target { riscv_vector } } } */
/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-#include "cond_logical-2.c"
+#include "cond_logical_min_max-2.c"
#define N 99
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c
index b48bcb1..6005498 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-3.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-3.c
@@ -1,7 +1,7 @@
/* { dg-do run { target { riscv_vector } } } */
/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-#include "cond_logical-3.c"
+#include "cond_logical_min_max-3.c"
#define N 99
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c
index 0d04e69..f8016a3 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-4.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-4.c
@@ -1,7 +1,7 @@
/* { dg-do run { target { riscv_vector } } } */
/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-#include "cond_logical-4.c"
+#include "cond_logical_min_max-4.c"
#define N 99
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c
index 8750105..e265b6f 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_run-5.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_logical_min_max_run-5.c
@@ -1,7 +1,7 @@
/* { dg-do run { target { riscv_vector } } } */
/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
-#include "cond_logical-5.c"
+#include "cond_logical_min_max-5.c"
#define N 99
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c
new file mode 100644
index 0000000..6ff2dc5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-1.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define DEF_LOOP(TYPE, WTYPE) \
+ void __attribute__ ((noipa)) \
+ test_##TYPE##_##WTYPE (TYPE *__restrict a, TYPE *__restrict b, \
+ TYPE *__restrict c, TYPE *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ c[i] = pred[i] \
+ ? (TYPE) (((WTYPE) a[i] * (WTYPE) b[i]) >> sizeof (TYPE) * 8) \
+ : c[i]; \
+ }
+
+#define TEST_ALL(T) \
+ T (int8_t, int16_t) \
+ T (int16_t, int32_t) \
+ T (int32_t, int64_t) \
+ T (uint8_t, uint16_t) \
+ T (uint16_t, uint32_t) \
+ T (uint32_t, uint64_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {\tvmulh\.vv\tv[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
+/* { dg-final { scan-assembler-times {\tvmulhu\.vv\tv[0-9]+,v[0-9]+,v[0-9]+,v0.t} 3 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c
new file mode 100644
index 0000000..c4c2b50
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh-2.c
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define DEF_LOOP(TYPE1, WTYPE1, TYPE2, WTYPE2, TYPE3) \
+ void __attribute__ ((noipa)) \
+ test_##TYPE1##_##TYPE2 (TYPE1 *__restrict a, TYPE2 *__restrict b, \
+ TYPE3 *__restrict c, TYPE3 *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ c[i] \
+ = pred[i] \
+ ? (TYPE3) (((WTYPE1) a[i] * (WTYPE2) b[i]) >> sizeof (TYPE1) * 8) \
+ : c[i]; \
+ }
+
+#define TEST_ALL(T) \
+ T (int8_t, int16_t, uint8_t, uint16_t, int8_t) \
+ T (uint8_t, uint16_t, int8_t, int16_t, int8_t) \
+ T (int16_t, int32_t, uint16_t, uint32_t, int16_t) \
+ T (uint16_t, uint32_t, int16_t, int32_t, int16_t) \
+ T (int32_t, int64_t, uint32_t, uint64_t, int32_t) \
+ T (uint32_t, uint64_t, int32_t, int64_t, int32_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* FIXME: need midend support: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111381 */
+/* { dg-final { scan-assembler-times {\tvmulhsu\.vv\tv[0-9]+,v[0-9]+,v[0-9]+,v0.t} 6 {xfail riscv*-*-*} } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c
new file mode 100644
index 0000000..8260472
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-1.c
@@ -0,0 +1,32 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "cond_mulh-1.c"
+
+#define N 99
+
+#define TEST_LOOP(TYPE, WTYPE) \
+ { \
+ TYPE a[N], b[N], c[N], pred[N]; \
+ for (int i = 0; i < N; ++i) \
+ { \
+ a[i] = i * i; \
+ b[i] = ((i + 2) % 3) * (i + 1); \
+ pred[i] = i % 3; \
+ asm volatile ("" ::: "memory"); \
+ } \
+ test_##TYPE##_##WTYPE (a, b, c, pred, N); \
+ for (int i = 0; i < N; ++i) \
+ if (c[i] \
+ != (pred[i] \
+ ? (TYPE) (((WTYPE) a[i] * (WTYPE) b[i]) >> sizeof (TYPE) * 8) \
+ : c[i])) \
+ __builtin_abort (); \
+ }
+
+int
+main ()
+{
+ TEST_ALL (TEST_LOOP)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c
new file mode 100644
index 0000000..24612ff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_mulh_run-2.c
@@ -0,0 +1,34 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "cond_mulh-2.c"
+
+#define N 99
+
+#define TEST_LOOP(TYPE1, WTYPE1, TYPE2, WTYPE2, TYPE3) \
+ { \
+ TYPE1 a[N]; \
+ TYPE2 b[N]; \
+ TYPE3 c[N], pred[N]; \
+ for (int i = 0; i < N; ++i) \
+ { \
+ a[i] = i * i; \
+ b[i] = ((i + 2) % 3) * (i + 1); \
+ pred[i] = i % 3; \
+ asm volatile ("" ::: "memory"); \
+ } \
+ test_##TYPE1##_##TYPE2 (a, b, c, pred, N); \
+ for (int i = 0; i < N; ++i) \
+ if (c[i] \
+ != (pred[i] ? (TYPE3) (((WTYPE1) a[i] * (WTYPE2) b[i]) \
+ >> sizeof (TYPE1) * 8) \
+ : c[i])) \
+ __builtin_abort (); \
+ }
+
+int
+main ()
+{
+ TEST_ALL (TEST_LOOP)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c
new file mode 100644
index 0000000..d068110
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-1.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define DEF_LOOP(TYPE1, TYPE2) \
+ void __attribute__ ((noipa)) \
+ test_##TYPE1##_##TYPE2 (TYPE2 *__restrict r, TYPE2 *__restrict a, \
+ TYPE1 *__restrict b, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] > 20 ? (TYPE2) (b[i] >> 3) : r[i]; \
+ }
+
+#define TEST_ALL(T) \
+ T (int16_t, int8_t) \
+ T (int32_t, int16_t) \
+ T (int64_t, int32_t) \
+ T (uint16_t, uint8_t) \
+ T (uint32_t, uint16_t) \
+ T (uint64_t, uint32_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* { dg-final { scan-assembler-times {\tvnsrl\.wi\t} 3 } } */
+/* { dg-final { scan-assembler-times {\tvnsra\.wi\t} 3 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c
new file mode 100644
index 0000000..2637991
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-2.c
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define DEF_LOOP(TYPE1, TYPE2) \
+ void __attribute__ ((noipa)) \
+ test_##TYPE1##_##TYPE2 (TYPE2 *__restrict r, TYPE2 *__restrict a, \
+ TYPE1 *__restrict b, TYPE2 shift, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] > 20 ? (TYPE2) (b[i] >> shift) : r[i]; \
+ }
+
+#define TEST_ALL(T) \
+ T (int16_t, int8_t) \
+ T (int32_t, int16_t) \
+ T (int64_t, int32_t) \
+ T (uint16_t, uint8_t) \
+ T (uint32_t, uint16_t) \
+ T (uint64_t, uint32_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* For int8_t and uint8_t, they are extended to int32_t and then shifted, so
+ int8_t and uint8_t are use vnsra.wx and vnsra.wx's dest is used not by vmerge
+ but by vncvt, so vncvt + vmerge will combine to a mask operator. */
+/* { dg-final { scan-assembler-times {vnsrl\.wx\t} 2 } } */
+/* { dg-final { scan-assembler-times {vnsra\.wx\t} 4 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c
new file mode 100644
index 0000000..17a640b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift-3.c
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include <stdint-gcc.h>
+
+#define DEF_LOOP(TYPE1, TYPE2) \
+ void __attribute__ ((noipa)) \
+ test_##TYPE1##_##TYPE2 (TYPE2 *__restrict r, TYPE2 *__restrict a, \
+ TYPE1 *__restrict b, TYPE2 *__restrict shift, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ r[i] = a[i] > 20 ? (TYPE2) (b[i] >> shift[i]) : r[i]; \
+ }
+
+#define TEST_ALL(T) \
+ T (int16_t, int8_t) \
+ T (int32_t, int16_t) \
+ T (int64_t, int32_t) \
+ T (uint16_t, uint8_t) \
+ T (uint32_t, uint16_t) \
+ T (uint64_t, uint32_t)
+
+TEST_ALL (DEF_LOOP)
+
+/* For int8_t and uint8_t, they are extended to int32_t and then shifted, so
+ int8_t and uint8_t are use vsra.vv on e32 and cannot convert to vnsra.wv
+ currently. */
+/* { dg-final { scan-assembler-times {\tvnsrl\.wv\t} 2 } } */
+/* { dg-final { scan-assembler-times {\tvnsra\.wv\t} 2 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c
new file mode 100644
index 0000000..bf07468
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-1.c
@@ -0,0 +1,29 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "cond_narrow_shift-1.c"
+
+#define N 99
+
+#define TEST_LOOP(TYPE1, TYPE2) \
+ { \
+ TYPE2 r[N], a[N]; \
+ TYPE1 b[N]; \
+ for (int i = 0; i < N; ++i) \
+ { \
+ a[i] = (i & 1 ? i : 3 * i); \
+ b[i] = (i >> 4) << (i & 15); \
+ asm volatile ("" ::: "memory"); \
+ } \
+ test_##TYPE1##_##TYPE2 (r, a, b, N); \
+ for (int i = 0; i < N; ++i) \
+ if (r[i] != (a[i] > 20 ? (TYPE2) (b[i] >> 3) : r[i])) \
+ __builtin_abort (); \
+ }
+
+int
+main ()
+{
+ TEST_ALL (TEST_LOOP)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c
new file mode 100644
index 0000000..b0454bd
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-2.c
@@ -0,0 +1,30 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "cond_narrow_shift-2.c"
+
+#define N 99
+
+#define TEST_LOOP(TYPE1, TYPE2) \
+ { \
+ TYPE2 r[N], a[N]; \
+ TYPE2 shift = 5; \
+ TYPE1 b[N]; \
+ for (int i = 0; i < N; ++i) \
+ { \
+ a[i] = (i & 1 ? i : 3 * i); \
+ b[i] = (i >> 4) << (i & 15); \
+ asm volatile ("" ::: "memory"); \
+ } \
+ test_##TYPE1##_##TYPE2 (r, a, b, shift, N); \
+ for (int i = 0; i < N; ++i) \
+ if (r[i] != (a[i] > 20 ? (TYPE2) (b[i] >> shift) : r[i])) \
+ __builtin_abort (); \
+ }
+
+int
+main ()
+{
+ TEST_ALL (TEST_LOOP)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c
new file mode 100644
index 0000000..1c025a9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_narrow_shift_run-3.c
@@ -0,0 +1,31 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "cond_narrow_shift-3.c"
+
+#define N 99
+
+#define TEST_LOOP(TYPE1, TYPE2) \
+ { \
+ TYPE2 r[N], a[N]; \
+ TYPE2 shift[N]; \
+ TYPE1 b[N]; \
+ for (int i = 0; i < N; ++i) \
+ { \
+ a[i] = (i & 1 ? i : 3 * i); \
+ b[i] = (i >> 4) << (i & 15); \
+ shift[i] = i; \
+ asm volatile ("" ::: "memory"); \
+ } \
+ test_##TYPE1##_##TYPE2 (r, a, b, shift, N); \
+ for (int i = 0; i < N; ++i) \
+ if (r[i] != (a[i] > 20 ? (TYPE2) (b[i] >> shift[i]) : r[i])) \
+ __builtin_abort (); \
+ }
+
+int
+main ()
+{
+ TEST_ALL (TEST_LOOP)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c
new file mode 100644
index 0000000..c67593d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-1.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE2 *__restrict a, TYPE2 *__restrict b, TYPE2 *__restrict a2, \
+ TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? (TYPE1) a[i] + (TYPE1) b[i] : dst[i]; \
+ dst2[i] = pred[i] ? (TYPE1) a2[i] + (TYPE1) b[i] : dst[i]; \
+ dst3[i] = pred[i] ? (TYPE1) a2[i] + (TYPE1) a[i] : dst2[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t) \
+ TEST_TYPE (uint16_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t) \
+ TEST_TYPE (uint32_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t) \
+ TEST_TYPE (uint64_t, uint32_t) \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwadd\.vv} 9 } } */
+/* { dg-final { scan-assembler-times {\tvwaddu\.vv} 9 } } */
+/* { dg-final { scan-assembler-times {\tvfwadd\.vv} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c
new file mode 100644
index 0000000..f8fdebb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-2.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE2 *__restrict a, TYPE2 *__restrict b, TYPE2 *__restrict a2, \
+ TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? (TYPE1) a[i] - (TYPE1) b[i] : dst[i]; \
+ dst2[i] = pred[i] ? (TYPE1) a2[i] - (TYPE1) b[i] : dst2[i]; \
+ dst3[i] = pred[i] ? (TYPE1) a2[i] - (TYPE1) a[i] : dst3[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t) \
+ TEST_TYPE (uint16_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t) \
+ TEST_TYPE (uint32_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t) \
+ TEST_TYPE (uint64_t, uint32_t) \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwsub\.vv} 9 } } */
+/* { dg-final { scan-assembler-times {\tvwsubu\.vv} 9 } } */
+/* { dg-final { scan-assembler-times {\tvfwsub\.vv} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c
new file mode 100644
index 0000000..ef61a4f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-3.c
@@ -0,0 +1,36 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE2 *__restrict b, \
+ TYPE2 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b[i] : dst[i]; \
+ dst2[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) b[i] : dst2[i]; \
+ dst3[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) a[i] : dst3[i]; \
+ dst4[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b2[i] : dst4[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t) \
+ TEST_TYPE (uint16_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t) \
+ TEST_TYPE (uint32_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t) \
+ TEST_TYPE (uint64_t, uint32_t) \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwmul\.vv} 12 } } */
+/* { dg-final { scan-assembler-times {\tvwmulu\.vv} 12 } } */
+/* { dg-final { scan-assembler-times {\tvfwmul\.vv} 8 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c
new file mode 100644
index 0000000..9aa6355
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-4.c
@@ -0,0 +1,35 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv -mabi=ilp32d --param=riscv-autovec-preference=scalable" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2, TYPE3) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE3 *__restrict b, \
+ TYPE3 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b[i] : dst[i]; \
+ dst2[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) b[i] : dst2[i]; \
+ dst3[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) a[i] : dst3[i]; \
+ dst4[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b2[i] : dst4[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t, uint32_t) \
+ TEST_TYPE (int16_t, uint8_t, int8_t) \
+ TEST_TYPE (int32_t, uint16_t, int16_t) \
+ TEST_TYPE (int64_t, uint32_t, int32_t)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwmulsu\.vv} 12 } } */
+/* { dg-final { scan-assembler-times {\tvwmul\.vv} 6 } } */
+/* { dg-final { scan-assembler-times {\tvwmulu\.vv} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmul} } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c
new file mode 100644
index 0000000..efbd3d1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-5.c
@@ -0,0 +1,37 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE2 *__restrict b, \
+ TYPE2 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ if (pred[i]) \
+ { \
+ dst[i] += (TYPE1) a[i] * (TYPE1) b[i]; \
+ dst2[i] += (TYPE1) a2[i] * (TYPE1) b[i]; \
+ dst3[i] += (TYPE1) a2[i] * (TYPE1) a[i]; \
+ dst4[i] += (TYPE1) a[i] * (TYPE1) b2[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t) \
+ TEST_TYPE (uint16_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t) \
+ TEST_TYPE (uint32_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t) \
+ TEST_TYPE (uint64_t, uint32_t) \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwmacc\.vv} 12 } } */
+/* { dg-final { scan-assembler-times {\tvwmaccu\.vv} 12 } } */
+/* { dg-final { scan-assembler-times {\tvfwmacc\.vv} 8 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c
new file mode 100644
index 0000000..083571c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-6.c
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv -mabi=ilp32d --param=riscv-autovec-preference=scalable" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2, TYPE3) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE3 *__restrict b, \
+ TYPE3 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ if (pred[i]) \
+ { \
+ dst[i] += (TYPE1) a[i] * (TYPE1) b[i]; \
+ dst2[i] += (TYPE1) a2[i] * (TYPE1) b[i]; \
+ dst3[i] += (TYPE1) a2[i] * (TYPE1) a[i]; \
+ dst4[i] += (TYPE1) a[i] * (TYPE1) b2[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (int16_t, int8_t, uint8_t) \
+ TEST_TYPE (int32_t, int16_t, uint16_t) \
+ TEST_TYPE (int64_t, int32_t, uint32_t)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvwmaccsu\.vv} 6 } } */
+/* { dg-final { scan-assembler-times {\tvwmacc\.vv} 3 } } */
+/* { dg-final { scan-assembler-times {\tvwmaccu\.vv} 3 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c
new file mode 100644
index 0000000..41017c3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-7.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE2 *__restrict b, \
+ TYPE2 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ if (pred[i]) \
+ { \
+ dst[i] += -((TYPE1) a[i] * (TYPE1) b[i]); \
+ dst2[i] += -((TYPE1) a2[i] * (TYPE1) b[i]); \
+ dst3[i] += -((TYPE1) a2[i] * (TYPE1) a[i]); \
+ dst4[i] += -((TYPE1) a[i] * (TYPE1) b2[i]); \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvfwnmsac\.vv} 8 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c
new file mode 100644
index 0000000..8aea32d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-8.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE2 *__restrict b, \
+ TYPE2 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b[i] - dst[i] : dst[i]; \
+ dst2[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) b[i] - dst2[i] : dst2[i]; \
+ dst3[i] = pred[i] ? (TYPE1) a2[i] * (TYPE1) a[i] - dst3[i] : dst3[i]; \
+ dst4[i] = pred[i] ? (TYPE1) a[i] * (TYPE1) b2[i] - dst4[i] : dst4[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* { dg-final { scan-assembler-times {\tvfwmsac\.vv} 8 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c
new file mode 100644
index 0000000..9e32211
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/cond/cond_widen_complicate-9.c
@@ -0,0 +1,33 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv32gcv_zvfh -mabi=ilp32d --param=riscv-autovec-preference=scalable -ffast-math" } */
+
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__ ((noipa)) void vwadd_##TYPE1_##TYPE2 ( \
+ TYPE1 *__restrict dst, TYPE1 *__restrict dst2, TYPE1 *__restrict dst3, \
+ TYPE1 *__restrict dst4, TYPE2 *__restrict a, TYPE2 *__restrict b, \
+ TYPE2 *__restrict a2, TYPE2 *__restrict b2, int *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; i++) \
+ { \
+ dst[i] = pred[i] ? -((TYPE1) a[i] * (TYPE1) b[i]) - dst[i] : dst[i]; \
+ dst2[i] \
+ = pred[i] ? -((TYPE1) a2[i] * (TYPE1) b[i]) - dst2[i] : dst2[i]; \
+ dst3[i] \
+ = pred[i] ? -((TYPE1) a2[i] * (TYPE1) a[i]) - dst3[i] : dst3[i]; \
+ dst4[i] \
+ = pred[i] ? -((TYPE1) a[i] * (TYPE1) b2[i]) - dst4[i] : dst4[i]; \
+ } \
+ }
+
+#define TEST_ALL() \
+ TEST_TYPE (float, _Float16) \
+ TEST_TYPE (double, float)
+
+TEST_ALL ()
+
+/* Other optimization removed some mask operand of vfwnmacc.vv, so expected 6
+ * instead of 8. */
+/* { dg-final { scan-assembler-times {\tvfwnmacc\.vv\t} 6 } } */
+/* { dg-final { scan-assembler-not {\tvmerge\.vvm\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c
index 5fba27c..7c42438 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/partial/slp-9.c
@@ -29,4 +29,3 @@
TEST_ALL (VEC_PERM)
/* { dg-final { scan-assembler-times {viota.m} 2 } } */
-/* { dg-final { scan-assembler-not {vmv\.v\.i} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
index 1da1b8c..1e01cfe 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111313.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-march=rv64gcv -mabi=lp64d --param=riscv-autovec-preference=scalable -O3" } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d --param=riscv-autovec-preference=scalable -O3 -fno-schedule-insns -fno-schedule-insns2" } */
#define K 32
short in[2*K][K];
@@ -17,4 +17,4 @@ foo ()
}
}
-/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 3 } } */
+/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]\s+vmv\.v\.x} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
new file mode 100644
index 0000000..a7f64c9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-1.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -Wno-int-conversion -Wno-implicit-function -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Ofast -ftree-vectorize" } */
+
+int d ();
+typedef struct
+{
+ int b;
+} c;
+int
+e (char *f, long g)
+{
+ f += g;
+ while (g--)
+ *--f = d;
+}
+
+int
+d (c * f)
+{
+ while (h ())
+ switch (f->b)
+ case 'Q':
+ {
+ long a;
+ e (&a, sizeof (a));
+ i (a);
+ }
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
new file mode 100644
index 0000000..1f170c9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr111391-2.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gc_zve32x_zvl128b -mabi=lp64d -Wno-int-conversion -Wno-implicit-function -Wno-incompatible-pointer-types -Wno-implicit-function-declaration -Ofast -ftree-vectorize" } */
+
+#include "pr111391-1.c"
+
+/* { dg-final { scan-assembler-times {vsetivli\s+zero,\s*2,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 1 } }
+/* { dg-final { scan-assembler-times {vmv\.x\.s} 2 } } */
+/* { dg-final { scan-assembler-times {vslidedown.vi\s+v[0-9]+,\s*v[0-9]+,\s*1} 1 } } */
+/* { dg-final { scan-assembler-times {slli\s+[a-x0-9]+,[a-x0-9]+,32} 1 } } */
+/* { dg-final { scan-assembler-times {or\s+[a-x0-9]+,[a-x0-9]+,[a-x0-9]+} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-1.c
new file mode 100644
index 0000000..05742b9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-1.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (eq, 1, int8_t, ==)
+DEF_OP_VV (eq, 2, int8_t, ==)
+DEF_OP_VV (eq, 4, int8_t, ==)
+DEF_OP_VV (eq, 8, int8_t, ==)
+DEF_OP_VV (eq, 16, int8_t, ==)
+DEF_OP_VV (eq, 32, int8_t, ==)
+DEF_OP_VV (eq, 64, int8_t, ==)
+DEF_OP_VV (eq, 128, int8_t, ==)
+DEF_OP_VV (eq, 256, int8_t, ==)
+DEF_OP_VV (eq, 512, int8_t, ==)
+DEF_OP_VV (eq, 1024, int8_t, ==)
+DEF_OP_VV (eq, 2048, int8_t, ==)
+DEF_OP_VV (eq, 4096, int8_t, ==)
+
+DEF_OP_VV (eq, 1, int16_t, ==)
+DEF_OP_VV (eq, 2, int16_t, ==)
+DEF_OP_VV (eq, 4, int16_t, ==)
+DEF_OP_VV (eq, 8, int16_t, ==)
+DEF_OP_VV (eq, 16, int16_t, ==)
+DEF_OP_VV (eq, 32, int16_t, ==)
+DEF_OP_VV (eq, 64, int16_t, ==)
+DEF_OP_VV (eq, 128, int16_t, ==)
+DEF_OP_VV (eq, 256, int16_t, ==)
+DEF_OP_VV (eq, 512, int16_t, ==)
+DEF_OP_VV (eq, 1024, int16_t, ==)
+DEF_OP_VV (eq, 2048, int16_t, ==)
+
+DEF_OP_VV (eq, 1, int32_t, ==)
+DEF_OP_VV (eq, 2, int32_t, ==)
+DEF_OP_VV (eq, 4, int32_t, ==)
+DEF_OP_VV (eq, 8, int32_t, ==)
+DEF_OP_VV (eq, 16, int32_t, ==)
+DEF_OP_VV (eq, 32, int32_t, ==)
+DEF_OP_VV (eq, 64, int32_t, ==)
+DEF_OP_VV (eq, 128, int32_t, ==)
+DEF_OP_VV (eq, 256, int32_t, ==)
+DEF_OP_VV (eq, 512, int32_t, ==)
+DEF_OP_VV (eq, 1024, int32_t, ==)
+
+DEF_OP_VV (eq, 1, int64_t, ==)
+DEF_OP_VV (eq, 2, int64_t, ==)
+DEF_OP_VV (eq, 4, int64_t, ==)
+DEF_OP_VV (eq, 8, int64_t, ==)
+DEF_OP_VV (eq, 16, int64_t, ==)
+DEF_OP_VV (eq, 32, int64_t, ==)
+DEF_OP_VV (eq, 64, int64_t, ==)
+DEF_OP_VV (eq, 128, int64_t, ==)
+DEF_OP_VV (eq, 256, int64_t, ==)
+DEF_OP_VV (eq, 512, int64_t, ==)
+
+DEF_OP_VV (eq, 1, _Float16, ==)
+DEF_OP_VV (eq, 2, _Float16, ==)
+DEF_OP_VV (eq, 4, _Float16, ==)
+DEF_OP_VV (eq, 8, _Float16, ==)
+DEF_OP_VV (eq, 16, _Float16, ==)
+DEF_OP_VV (eq, 32, _Float16, ==)
+DEF_OP_VV (eq, 64, _Float16, ==)
+DEF_OP_VV (eq, 128, _Float16, ==)
+DEF_OP_VV (eq, 256, _Float16, ==)
+DEF_OP_VV (eq, 512, _Float16, ==)
+DEF_OP_VV (eq, 1024, _Float16, ==)
+DEF_OP_VV (eq, 2048, _Float16, ==)
+
+DEF_OP_VV (eq, 1, float, ==)
+DEF_OP_VV (eq, 2, float, ==)
+DEF_OP_VV (eq, 4, float, ==)
+DEF_OP_VV (eq, 8, float, ==)
+DEF_OP_VV (eq, 16, float, ==)
+DEF_OP_VV (eq, 32, float, ==)
+DEF_OP_VV (eq, 64, float, ==)
+DEF_OP_VV (eq, 128, float, ==)
+DEF_OP_VV (eq, 256, float, ==)
+DEF_OP_VV (eq, 512, float, ==)
+DEF_OP_VV (eq, 1024, float, ==)
+
+DEF_OP_VV (eq, 1, double, ==)
+DEF_OP_VV (eq, 2, double, ==)
+DEF_OP_VV (eq, 4, double, ==)
+DEF_OP_VV (eq, 8, double, ==)
+DEF_OP_VV (eq, 16, double, ==)
+DEF_OP_VV (eq, 32, double, ==)
+DEF_OP_VV (eq, 64, double, ==)
+DEF_OP_VV (eq, 128, double, ==)
+DEF_OP_VV (eq, 256, double, ==)
+DEF_OP_VV (eq, 512, double, ==)
+
+/* { dg-final { scan-assembler-times {vmseq\.vv} 42 } } */
+/* { dg-final { scan-assembler-times {vmfeq\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-2.c
new file mode 100644
index 0000000..39a5602
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-2.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (ne, 1, int8_t, !=)
+DEF_OP_VV (ne, 2, int8_t, !=)
+DEF_OP_VV (ne, 4, int8_t, !=)
+DEF_OP_VV (ne, 8, int8_t, !=)
+DEF_OP_VV (ne, 16, int8_t, !=)
+DEF_OP_VV (ne, 32, int8_t, !=)
+DEF_OP_VV (ne, 64, int8_t, !=)
+DEF_OP_VV (ne, 128, int8_t, !=)
+DEF_OP_VV (ne, 256, int8_t, !=)
+DEF_OP_VV (ne, 512, int8_t, !=)
+DEF_OP_VV (ne, 1024, int8_t, !=)
+DEF_OP_VV (ne, 2048, int8_t, !=)
+DEF_OP_VV (ne, 4096, int8_t, !=)
+
+DEF_OP_VV (ne, 1, int16_t, !=)
+DEF_OP_VV (ne, 2, int16_t, !=)
+DEF_OP_VV (ne, 4, int16_t, !=)
+DEF_OP_VV (ne, 8, int16_t, !=)
+DEF_OP_VV (ne, 16, int16_t, !=)
+DEF_OP_VV (ne, 32, int16_t, !=)
+DEF_OP_VV (ne, 64, int16_t, !=)
+DEF_OP_VV (ne, 128, int16_t, !=)
+DEF_OP_VV (ne, 256, int16_t, !=)
+DEF_OP_VV (ne, 512, int16_t, !=)
+DEF_OP_VV (ne, 1024, int16_t, !=)
+DEF_OP_VV (ne, 2048, int16_t, !=)
+
+DEF_OP_VV (ne, 1, int32_t, !=)
+DEF_OP_VV (ne, 2, int32_t, !=)
+DEF_OP_VV (ne, 4, int32_t, !=)
+DEF_OP_VV (ne, 8, int32_t, !=)
+DEF_OP_VV (ne, 16, int32_t, !=)
+DEF_OP_VV (ne, 32, int32_t, !=)
+DEF_OP_VV (ne, 64, int32_t, !=)
+DEF_OP_VV (ne, 128, int32_t, !=)
+DEF_OP_VV (ne, 256, int32_t, !=)
+DEF_OP_VV (ne, 512, int32_t, !=)
+DEF_OP_VV (ne, 1024, int32_t, !=)
+
+DEF_OP_VV (ne, 1, int64_t, !=)
+DEF_OP_VV (ne, 2, int64_t, !=)
+DEF_OP_VV (ne, 4, int64_t, !=)
+DEF_OP_VV (ne, 8, int64_t, !=)
+DEF_OP_VV (ne, 16, int64_t, !=)
+DEF_OP_VV (ne, 32, int64_t, !=)
+DEF_OP_VV (ne, 64, int64_t, !=)
+DEF_OP_VV (ne, 128, int64_t, !=)
+DEF_OP_VV (ne, 256, int64_t, !=)
+DEF_OP_VV (ne, 512, int64_t, !=)
+
+DEF_OP_VV (ne, 1, _Float16, !=)
+DEF_OP_VV (ne, 2, _Float16, !=)
+DEF_OP_VV (ne, 4, _Float16, !=)
+DEF_OP_VV (ne, 8, _Float16, !=)
+DEF_OP_VV (ne, 16, _Float16, !=)
+DEF_OP_VV (ne, 32, _Float16, !=)
+DEF_OP_VV (ne, 64, _Float16, !=)
+DEF_OP_VV (ne, 128, _Float16, !=)
+DEF_OP_VV (ne, 256, _Float16, !=)
+DEF_OP_VV (ne, 512, _Float16, !=)
+DEF_OP_VV (ne, 1024, _Float16, !=)
+DEF_OP_VV (ne, 2048, _Float16, !=)
+
+DEF_OP_VV (ne, 1, float, !=)
+DEF_OP_VV (ne, 2, float, !=)
+DEF_OP_VV (ne, 4, float, !=)
+DEF_OP_VV (ne, 8, float, !=)
+DEF_OP_VV (ne, 16, float, !=)
+DEF_OP_VV (ne, 32, float, !=)
+DEF_OP_VV (ne, 64, float, !=)
+DEF_OP_VV (ne, 128, float, !=)
+DEF_OP_VV (ne, 256, float, !=)
+DEF_OP_VV (ne, 512, float, !=)
+DEF_OP_VV (ne, 1024, float, !=)
+
+DEF_OP_VV (ne, 1, double, !=)
+DEF_OP_VV (ne, 2, double, !=)
+DEF_OP_VV (ne, 4, double, !=)
+DEF_OP_VV (ne, 8, double, !=)
+DEF_OP_VV (ne, 16, double, !=)
+DEF_OP_VV (ne, 32, double, !=)
+DEF_OP_VV (ne, 64, double, !=)
+DEF_OP_VV (ne, 128, double, !=)
+DEF_OP_VV (ne, 256, double, !=)
+DEF_OP_VV (ne, 512, double, !=)
+
+/* { dg-final { scan-assembler-times {vmsne\.vv} 42 } } */
+/* { dg-final { scan-assembler-times {vmfne\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-3.c
new file mode 100644
index 0000000..387157d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-3.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (gt, 1, int8_t, >)
+DEF_OP_VV (gt, 2, int8_t, >)
+DEF_OP_VV (gt, 4, int8_t, >)
+DEF_OP_VV (gt, 8, int8_t, >)
+DEF_OP_VV (gt, 16, int8_t, >)
+DEF_OP_VV (gt, 32, int8_t, >)
+DEF_OP_VV (gt, 64, int8_t, >)
+DEF_OP_VV (gt, 128, int8_t, >)
+DEF_OP_VV (gt, 256, int8_t, >)
+DEF_OP_VV (gt, 512, int8_t, >)
+DEF_OP_VV (gt, 1024, int8_t, >)
+DEF_OP_VV (gt, 2048, int8_t, >)
+DEF_OP_VV (gt, 4096, int8_t, >)
+
+DEF_OP_VV (gt, 1, int16_t, >)
+DEF_OP_VV (gt, 2, int16_t, >)
+DEF_OP_VV (gt, 4, int16_t, >)
+DEF_OP_VV (gt, 8, int16_t, >)
+DEF_OP_VV (gt, 16, int16_t, >)
+DEF_OP_VV (gt, 32, int16_t, >)
+DEF_OP_VV (gt, 64, int16_t, >)
+DEF_OP_VV (gt, 128, int16_t, >)
+DEF_OP_VV (gt, 256, int16_t, >)
+DEF_OP_VV (gt, 512, int16_t, >)
+DEF_OP_VV (gt, 1024, int16_t, >)
+DEF_OP_VV (gt, 2048, int16_t, >)
+
+DEF_OP_VV (gt, 1, int32_t, >)
+DEF_OP_VV (gt, 2, int32_t, >)
+DEF_OP_VV (gt, 4, int32_t, >)
+DEF_OP_VV (gt, 8, int32_t, >)
+DEF_OP_VV (gt, 16, int32_t, >)
+DEF_OP_VV (gt, 32, int32_t, >)
+DEF_OP_VV (gt, 64, int32_t, >)
+DEF_OP_VV (gt, 128, int32_t, >)
+DEF_OP_VV (gt, 256, int32_t, >)
+DEF_OP_VV (gt, 512, int32_t, >)
+DEF_OP_VV (gt, 1024, int32_t, >)
+
+DEF_OP_VV (gt, 1, int64_t, >)
+DEF_OP_VV (gt, 2, int64_t, >)
+DEF_OP_VV (gt, 4, int64_t, >)
+DEF_OP_VV (gt, 8, int64_t, >)
+DEF_OP_VV (gt, 16, int64_t, >)
+DEF_OP_VV (gt, 32, int64_t, >)
+DEF_OP_VV (gt, 64, int64_t, >)
+DEF_OP_VV (gt, 128, int64_t, >)
+DEF_OP_VV (gt, 256, int64_t, >)
+DEF_OP_VV (gt, 512, int64_t, >)
+
+DEF_OP_VV (gt, 1, _Float16, >)
+DEF_OP_VV (gt, 2, _Float16, >)
+DEF_OP_VV (gt, 4, _Float16, >)
+DEF_OP_VV (gt, 8, _Float16, >)
+DEF_OP_VV (gt, 16, _Float16, >)
+DEF_OP_VV (gt, 32, _Float16, >)
+DEF_OP_VV (gt, 64, _Float16, >)
+DEF_OP_VV (gt, 128, _Float16, >)
+DEF_OP_VV (gt, 256, _Float16, >)
+DEF_OP_VV (gt, 512, _Float16, >)
+DEF_OP_VV (gt, 1024, _Float16, >)
+DEF_OP_VV (gt, 2048, _Float16, >)
+
+DEF_OP_VV (gt, 1, float, >)
+DEF_OP_VV (gt, 2, float, >)
+DEF_OP_VV (gt, 4, float, >)
+DEF_OP_VV (gt, 8, float, >)
+DEF_OP_VV (gt, 16, float, >)
+DEF_OP_VV (gt, 32, float, >)
+DEF_OP_VV (gt, 64, float, >)
+DEF_OP_VV (gt, 128, float, >)
+DEF_OP_VV (gt, 256, float, >)
+DEF_OP_VV (gt, 512, float, >)
+DEF_OP_VV (gt, 1024, float, >)
+
+DEF_OP_VV (gt, 1, double, >)
+DEF_OP_VV (gt, 2, double, >)
+DEF_OP_VV (gt, 4, double, >)
+DEF_OP_VV (gt, 8, double, >)
+DEF_OP_VV (gt, 16, double, >)
+DEF_OP_VV (gt, 32, double, >)
+DEF_OP_VV (gt, 64, double, >)
+DEF_OP_VV (gt, 128, double, >)
+DEF_OP_VV (gt, 256, double, >)
+DEF_OP_VV (gt, 512, double, >)
+
+/* { dg-final { scan-assembler-times {vmsgt\.vv} 40 } } */
+/* { dg-final { scan-assembler-times {vmfgt\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-4.c
new file mode 100644
index 0000000..40b8871
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-4.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (ge, 1, int8_t, >=)
+DEF_OP_VV (ge, 2, int8_t, >=)
+DEF_OP_VV (ge, 4, int8_t, >=)
+DEF_OP_VV (ge, 8, int8_t, >=)
+DEF_OP_VV (ge, 16, int8_t, >=)
+DEF_OP_VV (ge, 32, int8_t, >=)
+DEF_OP_VV (ge, 64, int8_t, >=)
+DEF_OP_VV (ge, 128, int8_t, >=)
+DEF_OP_VV (ge, 256, int8_t, >=)
+DEF_OP_VV (ge, 512, int8_t, >=)
+DEF_OP_VV (ge, 1024, int8_t, >=)
+DEF_OP_VV (ge, 2048, int8_t, >=)
+DEF_OP_VV (ge, 4096, int8_t, >=)
+
+DEF_OP_VV (ge, 1, int16_t, >=)
+DEF_OP_VV (ge, 2, int16_t, >=)
+DEF_OP_VV (ge, 4, int16_t, >=)
+DEF_OP_VV (ge, 8, int16_t, >=)
+DEF_OP_VV (ge, 16, int16_t, >=)
+DEF_OP_VV (ge, 32, int16_t, >=)
+DEF_OP_VV (ge, 64, int16_t, >=)
+DEF_OP_VV (ge, 128, int16_t, >=)
+DEF_OP_VV (ge, 256, int16_t, >=)
+DEF_OP_VV (ge, 512, int16_t, >=)
+DEF_OP_VV (ge, 1024, int16_t, >=)
+DEF_OP_VV (ge, 2048, int16_t, >=)
+
+DEF_OP_VV (ge, 1, int32_t, >=)
+DEF_OP_VV (ge, 2, int32_t, >=)
+DEF_OP_VV (ge, 4, int32_t, >=)
+DEF_OP_VV (ge, 8, int32_t, >=)
+DEF_OP_VV (ge, 16, int32_t, >=)
+DEF_OP_VV (ge, 32, int32_t, >=)
+DEF_OP_VV (ge, 64, int32_t, >=)
+DEF_OP_VV (ge, 128, int32_t, >=)
+DEF_OP_VV (ge, 256, int32_t, >=)
+DEF_OP_VV (ge, 512, int32_t, >=)
+DEF_OP_VV (ge, 1024, int32_t, >=)
+
+DEF_OP_VV (ge, 1, int64_t, >=)
+DEF_OP_VV (ge, 2, int64_t, >=)
+DEF_OP_VV (ge, 4, int64_t, >=)
+DEF_OP_VV (ge, 8, int64_t, >=)
+DEF_OP_VV (ge, 16, int64_t, >=)
+DEF_OP_VV (ge, 32, int64_t, >=)
+DEF_OP_VV (ge, 64, int64_t, >=)
+DEF_OP_VV (ge, 128, int64_t, >=)
+DEF_OP_VV (ge, 256, int64_t, >=)
+DEF_OP_VV (ge, 512, int64_t, >=)
+
+DEF_OP_VV (ge, 1, _Float16, >=)
+DEF_OP_VV (ge, 2, _Float16, >=)
+DEF_OP_VV (ge, 4, _Float16, >=)
+DEF_OP_VV (ge, 8, _Float16, >=)
+DEF_OP_VV (ge, 16, _Float16, >=)
+DEF_OP_VV (ge, 32, _Float16, >=)
+DEF_OP_VV (ge, 64, _Float16, >=)
+DEF_OP_VV (ge, 128, _Float16, >=)
+DEF_OP_VV (ge, 256, _Float16, >=)
+DEF_OP_VV (ge, 512, _Float16, >=)
+DEF_OP_VV (ge, 1024, _Float16, >=)
+DEF_OP_VV (ge, 2048, _Float16, >=)
+
+DEF_OP_VV (ge, 1, float, >=)
+DEF_OP_VV (ge, 2, float, >=)
+DEF_OP_VV (ge, 4, float, >=)
+DEF_OP_VV (ge, 8, float, >=)
+DEF_OP_VV (ge, 16, float, >=)
+DEF_OP_VV (ge, 32, float, >=)
+DEF_OP_VV (ge, 64, float, >=)
+DEF_OP_VV (ge, 128, float, >=)
+DEF_OP_VV (ge, 256, float, >=)
+DEF_OP_VV (ge, 512, float, >=)
+DEF_OP_VV (ge, 1024, float, >=)
+
+DEF_OP_VV (ge, 1, double, >=)
+DEF_OP_VV (ge, 2, double, >=)
+DEF_OP_VV (ge, 4, double, >=)
+DEF_OP_VV (ge, 8, double, >=)
+DEF_OP_VV (ge, 16, double, >=)
+DEF_OP_VV (ge, 32, double, >=)
+DEF_OP_VV (ge, 64, double, >=)
+DEF_OP_VV (ge, 128, double, >=)
+DEF_OP_VV (ge, 256, double, >=)
+DEF_OP_VV (ge, 512, double, >=)
+
+/* { dg-final { scan-assembler-times {vmsge\.vv} 40 } } */
+/* { dg-final { scan-assembler-times {vmfge\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-5.c
new file mode 100644
index 0000000..378b704
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-5.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (lt, 1, int8_t, <)
+DEF_OP_VV (lt, 2, int8_t, <)
+DEF_OP_VV (lt, 4, int8_t, <)
+DEF_OP_VV (lt, 8, int8_t, <)
+DEF_OP_VV (lt, 16, int8_t, <)
+DEF_OP_VV (lt, 32, int8_t, <)
+DEF_OP_VV (lt, 64, int8_t, <)
+DEF_OP_VV (lt, 128, int8_t, <)
+DEF_OP_VV (lt, 256, int8_t, <)
+DEF_OP_VV (lt, 512, int8_t, <)
+DEF_OP_VV (lt, 1024, int8_t, <)
+DEF_OP_VV (lt, 2048, int8_t, <)
+DEF_OP_VV (lt, 4096, int8_t, <)
+
+DEF_OP_VV (lt, 1, int16_t, <)
+DEF_OP_VV (lt, 2, int16_t, <)
+DEF_OP_VV (lt, 4, int16_t, <)
+DEF_OP_VV (lt, 8, int16_t, <)
+DEF_OP_VV (lt, 16, int16_t, <)
+DEF_OP_VV (lt, 32, int16_t, <)
+DEF_OP_VV (lt, 64, int16_t, <)
+DEF_OP_VV (lt, 128, int16_t, <)
+DEF_OP_VV (lt, 256, int16_t, <)
+DEF_OP_VV (lt, 512, int16_t, <)
+DEF_OP_VV (lt, 1024, int16_t, <)
+DEF_OP_VV (lt, 2048, int16_t, <)
+
+DEF_OP_VV (lt, 1, int32_t, <)
+DEF_OP_VV (lt, 2, int32_t, <)
+DEF_OP_VV (lt, 4, int32_t, <)
+DEF_OP_VV (lt, 8, int32_t, <)
+DEF_OP_VV (lt, 16, int32_t, <)
+DEF_OP_VV (lt, 32, int32_t, <)
+DEF_OP_VV (lt, 64, int32_t, <)
+DEF_OP_VV (lt, 128, int32_t, <)
+DEF_OP_VV (lt, 256, int32_t, <)
+DEF_OP_VV (lt, 512, int32_t, <)
+DEF_OP_VV (lt, 1024, int32_t, <)
+
+DEF_OP_VV (lt, 1, int64_t, <)
+DEF_OP_VV (lt, 2, int64_t, <)
+DEF_OP_VV (lt, 4, int64_t, <)
+DEF_OP_VV (lt, 8, int64_t, <)
+DEF_OP_VV (lt, 16, int64_t, <)
+DEF_OP_VV (lt, 32, int64_t, <)
+DEF_OP_VV (lt, 64, int64_t, <)
+DEF_OP_VV (lt, 128, int64_t, <)
+DEF_OP_VV (lt, 256, int64_t, <)
+DEF_OP_VV (lt, 512, int64_t, <)
+
+DEF_OP_VV (lt, 1, _Float16, <)
+DEF_OP_VV (lt, 2, _Float16, <)
+DEF_OP_VV (lt, 4, _Float16, <)
+DEF_OP_VV (lt, 8, _Float16, <)
+DEF_OP_VV (lt, 16, _Float16, <)
+DEF_OP_VV (lt, 32, _Float16, <)
+DEF_OP_VV (lt, 64, _Float16, <)
+DEF_OP_VV (lt, 128, _Float16, <)
+DEF_OP_VV (lt, 256, _Float16, <)
+DEF_OP_VV (lt, 512, _Float16, <)
+DEF_OP_VV (lt, 1024, _Float16, <)
+DEF_OP_VV (lt, 2048, _Float16, <)
+
+DEF_OP_VV (lt, 1, float, <)
+DEF_OP_VV (lt, 2, float, <)
+DEF_OP_VV (lt, 4, float, <)
+DEF_OP_VV (lt, 8, float, <)
+DEF_OP_VV (lt, 16, float, <)
+DEF_OP_VV (lt, 32, float, <)
+DEF_OP_VV (lt, 64, float, <)
+DEF_OP_VV (lt, 128, float, <)
+DEF_OP_VV (lt, 256, float, <)
+DEF_OP_VV (lt, 512, float, <)
+DEF_OP_VV (lt, 1024, float, <)
+
+DEF_OP_VV (lt, 1, double, <)
+DEF_OP_VV (lt, 2, double, <)
+DEF_OP_VV (lt, 4, double, <)
+DEF_OP_VV (lt, 8, double, <)
+DEF_OP_VV (lt, 16, double, <)
+DEF_OP_VV (lt, 32, double, <)
+DEF_OP_VV (lt, 64, double, <)
+DEF_OP_VV (lt, 128, double, <)
+DEF_OP_VV (lt, 256, double, <)
+DEF_OP_VV (lt, 512, double, <)
+
+/* { dg-final { scan-assembler-times {vmslt\.vv} 40 } } */
+/* { dg-final { scan-assembler-times {vmflt\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-6.c
new file mode 100644
index 0000000..f0351e0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/cmp-6.c
@@ -0,0 +1,106 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_OP_VV (le, 1, int8_t, <=)
+DEF_OP_VV (le, 2, int8_t, <=)
+DEF_OP_VV (le, 4, int8_t, <=)
+DEF_OP_VV (le, 8, int8_t, <=)
+DEF_OP_VV (le, 16, int8_t, <=)
+DEF_OP_VV (le, 32, int8_t, <=)
+DEF_OP_VV (le, 64, int8_t, <=)
+DEF_OP_VV (le, 128, int8_t, <=)
+DEF_OP_VV (le, 256, int8_t, <=)
+DEF_OP_VV (le, 512, int8_t, <=)
+DEF_OP_VV (le, 1024, int8_t, <=)
+DEF_OP_VV (le, 2048, int8_t, <=)
+DEF_OP_VV (le, 4096, int8_t, <=)
+
+DEF_OP_VV (le, 1, int16_t, <=)
+DEF_OP_VV (le, 2, int16_t, <=)
+DEF_OP_VV (le, 4, int16_t, <=)
+DEF_OP_VV (le, 8, int16_t, <=)
+DEF_OP_VV (le, 16, int16_t, <=)
+DEF_OP_VV (le, 32, int16_t, <=)
+DEF_OP_VV (le, 64, int16_t, <=)
+DEF_OP_VV (le, 128, int16_t, <=)
+DEF_OP_VV (le, 256, int16_t, <=)
+DEF_OP_VV (le, 512, int16_t, <=)
+DEF_OP_VV (le, 1024, int16_t, <=)
+DEF_OP_VV (le, 2048, int16_t, <=)
+
+DEF_OP_VV (le, 1, int32_t, <=)
+DEF_OP_VV (le, 2, int32_t, <=)
+DEF_OP_VV (le, 4, int32_t, <=)
+DEF_OP_VV (le, 8, int32_t, <=)
+DEF_OP_VV (le, 16, int32_t, <=)
+DEF_OP_VV (le, 32, int32_t, <=)
+DEF_OP_VV (le, 64, int32_t, <=)
+DEF_OP_VV (le, 128, int32_t, <=)
+DEF_OP_VV (le, 256, int32_t, <=)
+DEF_OP_VV (le, 512, int32_t, <=)
+DEF_OP_VV (le, 1024, int32_t, <=)
+
+DEF_OP_VV (le, 1, int64_t, <=)
+DEF_OP_VV (le, 2, int64_t, <=)
+DEF_OP_VV (le, 4, int64_t, <=)
+DEF_OP_VV (le, 8, int64_t, <=)
+DEF_OP_VV (le, 16, int64_t, <=)
+DEF_OP_VV (le, 32, int64_t, <=)
+DEF_OP_VV (le, 64, int64_t, <=)
+DEF_OP_VV (le, 128, int64_t, <=)
+DEF_OP_VV (le, 256, int64_t, <=)
+DEF_OP_VV (le, 512, int64_t, <=)
+
+DEF_OP_VV (le, 1, _Float16, <=)
+DEF_OP_VV (le, 2, _Float16, <=)
+DEF_OP_VV (le, 4, _Float16, <=)
+DEF_OP_VV (le, 8, _Float16, <=)
+DEF_OP_VV (le, 16, _Float16, <=)
+DEF_OP_VV (le, 32, _Float16, <=)
+DEF_OP_VV (le, 64, _Float16, <=)
+DEF_OP_VV (le, 128, _Float16, <=)
+DEF_OP_VV (le, 256, _Float16, <=)
+DEF_OP_VV (le, 512, _Float16, <=)
+DEF_OP_VV (le, 1024, _Float16, <=)
+DEF_OP_VV (le, 2048, _Float16, <=)
+
+DEF_OP_VV (le, 1, float, <=)
+DEF_OP_VV (le, 2, float, <=)
+DEF_OP_VV (le, 4, float, <=)
+DEF_OP_VV (le, 8, float, <=)
+DEF_OP_VV (le, 16, float, <=)
+DEF_OP_VV (le, 32, float, <=)
+DEF_OP_VV (le, 64, float, <=)
+DEF_OP_VV (le, 128, float, <=)
+DEF_OP_VV (le, 256, float, <=)
+DEF_OP_VV (le, 512, float, <=)
+DEF_OP_VV (le, 1024, float, <=)
+
+DEF_OP_VV (le, 1, double, <=)
+DEF_OP_VV (le, 2, double, <=)
+DEF_OP_VV (le, 4, double, <=)
+DEF_OP_VV (le, 8, double, <=)
+DEF_OP_VV (le, 16, double, <=)
+DEF_OP_VV (le, 32, double, <=)
+DEF_OP_VV (le, 64, double, <=)
+DEF_OP_VV (le, 128, double, <=)
+DEF_OP_VV (le, 256, double, <=)
+DEF_OP_VV (le, 512, double, <=)
+
+/* { dg-final { scan-assembler-times {vmsle\.vv} 40 } } */
+/* { dg-final { scan-assembler-times {vmfle\.vv} 27 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h
index c7df879..59f31d0 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/def.h
@@ -45,7 +45,53 @@ typedef int64_t v32di __attribute__ ((vector_size (256)));
typedef int64_t v64di __attribute__ ((vector_size (512)));
typedef int64_t v128di __attribute__ ((vector_size (1024)));
typedef int64_t v256di __attribute__ ((vector_size (2048)));
-typedef int64_t v512di __attribute__ ((vector_size (4096)));
+typedef uint64_t v512di __attribute__ ((vector_size (4096)));
+typedef uint8_t v1uqi __attribute__ ((vector_size (1)));
+typedef uint8_t v2uqi __attribute__ ((vector_size (2)));
+typedef uint8_t v4uqi __attribute__ ((vector_size (4)));
+typedef uint8_t v8uqi __attribute__ ((vector_size (8)));
+typedef uint8_t v16uqi __attribute__ ((vector_size (16)));
+typedef uint8_t v32uqi __attribute__ ((vector_size (32)));
+typedef uint8_t v64uqi __attribute__ ((vector_size (64)));
+typedef uint8_t v128uqi __attribute__ ((vector_size (128)));
+typedef uint8_t v256uqi __attribute__ ((vector_size (256)));
+typedef uint8_t v512uqi __attribute__ ((vector_size (512)));
+typedef uint8_t v1024uqi __attribute__ ((vector_size (1024)));
+typedef uint8_t v2048uqi __attribute__ ((vector_size (2048)));
+typedef uint8_t v4096uqi __attribute__ ((vector_size (4096)));
+typedef uint16_t v1uhi __attribute__ ((vector_size (2)));
+typedef uint16_t v2uhi __attribute__ ((vector_size (4)));
+typedef uint16_t v4uhi __attribute__ ((vector_size (8)));
+typedef uint16_t v8uhi __attribute__ ((vector_size (16)));
+typedef uint16_t v16uhi __attribute__ ((vector_size (32)));
+typedef uint16_t v32uhi __attribute__ ((vector_size (64)));
+typedef uint16_t v64uhi __attribute__ ((vector_size (128)));
+typedef uint16_t v128uhi __attribute__ ((vector_size (256)));
+typedef uint16_t v256uhi __attribute__ ((vector_size (512)));
+typedef uint16_t v512uhi __attribute__ ((vector_size (1024)));
+typedef uint16_t v1024uhi __attribute__ ((vector_size (2048)));
+typedef uint16_t v2048uhi __attribute__ ((vector_size (4096)));
+typedef uint32_t v1usi __attribute__ ((vector_size (4)));
+typedef uint32_t v2usi __attribute__ ((vector_size (8)));
+typedef uint32_t v4usi __attribute__ ((vector_size (16)));
+typedef uint32_t v8usi __attribute__ ((vector_size (32)));
+typedef uint32_t v16usi __attribute__ ((vector_size (64)));
+typedef uint32_t v32usi __attribute__ ((vector_size (128)));
+typedef uint32_t v64usi __attribute__ ((vector_size (256)));
+typedef uint32_t v128usi __attribute__ ((vector_size (512)));
+typedef uint32_t v256usi __attribute__ ((vector_size (1024)));
+typedef uint32_t v512usi __attribute__ ((vector_size (2048)));
+typedef uint32_t v1024usi __attribute__ ((vector_size (4096)));
+typedef uint64_t v1udi __attribute__ ((vector_size (8)));
+typedef uint64_t v2udi __attribute__ ((vector_size (16)));
+typedef uint64_t v4udi __attribute__ ((vector_size (32)));
+typedef uint64_t v8udi __attribute__ ((vector_size (64)));
+typedef uint64_t v16udi __attribute__ ((vector_size (128)));
+typedef uint64_t v32udi __attribute__ ((vector_size (256)));
+typedef uint64_t v64udi __attribute__ ((vector_size (512)));
+typedef uint64_t v128udi __attribute__ ((vector_size (1024)));
+typedef uint64_t v256udi __attribute__ ((vector_size (2048)));
+typedef uint64_t v512udi __attribute__ ((vector_size (4096)));
typedef _Float16 v1hf __attribute__ ((vector_size (2)));
typedef _Float16 v2hf __attribute__ ((vector_size (4)));
typedef _Float16 v4hf __attribute__ ((vector_size (8)));
@@ -108,7 +154,7 @@ typedef double v512df __attribute__ ((vector_size (4096)));
PREFIX##_##TYPE##NUM (TYPE *restrict a, TYPE *restrict b, TYPE *restrict c) \
{ \
for (int i = 0; i < NUM; ++i) \
- a[i] = b[i] OP -16; \
+ a[i] = b[i] OP - 16; \
}
#define DEF_OP_VI_15(PREFIX, NUM, TYPE, OP) \
@@ -196,3 +242,200 @@ typedef double v512df __attribute__ ((vector_size (4096)));
for (TYPE i = 0; i < NUM; ++i) \
a[i] = (BASE) + i * (STEP); \
}
+
+#define DEF_EXTRACT(SCALAR, VECTOR, INDEX) \
+ SCALAR \
+ extract_##SCALAR##VECTOR (VECTOR v) \
+ { \
+ return v[INDEX]; \
+ }
+
+#define DEF_MASK_LOGIC(PREFIX, NUM, TYPE, OP) \
+ void __attribute__ ((noinline, noclone)) \
+ PREFIX##_##TYPE##NUM (TYPE *restrict a, TYPE *restrict b, TYPE *restrict c, \
+ TYPE *restrict d, TYPE *restrict e) \
+ { \
+ for (int i = 0; i < NUM; ++i) \
+ a[i] = (b[i] > c[i]) OP (d[i] < e[i]); \
+ }
+
+#define DEF_SGNJX_VV(PREFIX, NUM, TYPE, CALL) \
+ void __attribute__ ((noinline, noclone)) \
+ PREFIX##_##TYPE##NUM (TYPE *restrict a, TYPE *restrict b, TYPE *restrict c) \
+ { \
+ for (int i = 0; i < NUM; ++i) \
+ a[i] = b[i] * CALL (1.0, c[i]); \
+ }
+
+#define DEF_REDUC_PLUS(TYPE, NUM) \
+ TYPE __attribute__ ((noinline, noclone)) \
+ reduc_plus_##TYPE##NUM (TYPE *__restrict a) \
+ { \
+ TYPE r = 0; \
+ for (int i = 0; i < NUM; ++i) \
+ r += a[i]; \
+ return r; \
+ }
+
+#define DEF_REDUC_MAXMIN(TYPE, NAME, CMP_OP, NUM) \
+ TYPE __attribute__ ((noinline, noclone)) \
+ reduc_##NAME##_##TYPE##_##NUM (TYPE *a) \
+ { \
+ TYPE r = 13; \
+ for (int i = 0; i < NUM; ++i) \
+ r = a[i] CMP_OP r ? a[i] : r; \
+ return r; \
+ }
+
+#define DEF_REDUC_BITWISE(TYPE, NAME, BIT_OP, NUM) \
+ TYPE __attribute__ ((noinline, noclone)) \
+ reduc_##NAME##_##TYPE##_##NUM (TYPE *a) \
+ { \
+ TYPE r = 13; \
+ for (int i = 0; i < NUM; ++i) \
+ r BIT_OP a[i]; \
+ return r; \
+ }
+
+#define VARS2(TYPE, NUM1, NUM2) TYPE var##NUM1, TYPE var##NUM2
+#define VARS4(TYPE, NUM1, NUM2, NUM3, NUM4) \
+ VARS2 (TYPE, NUM1, NUM2), VARS2 (TYPE, NUM3, NUM4)
+#define VARS8(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8) \
+ VARS4 (TYPE, NUM1, NUM2, NUM3, NUM4), VARS4 (TYPE, NUM5, NUM6, NUM7, NUM8)
+#define VARS16(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \
+ NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16) \
+ VARS8 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8), \
+ VARS8 (TYPE, NUM9, NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16)
+#define VARS32(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \
+ NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \
+ NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \
+ NUM28, NUM29, NUM30, NUM31, NUM32) \
+ VARS16 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16), \
+ VARS16 (TYPE, NUM17, NUM18, NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, \
+ NUM25, NUM26, NUM27, NUM28, NUM29, NUM30, NUM31, NUM32)
+#define VARS64(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \
+ NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \
+ NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \
+ NUM28, NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, \
+ NUM37, NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, \
+ NUM46, NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, \
+ NUM55, NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, \
+ NUM64) \
+ VARS32 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \
+ NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \
+ NUM29, NUM30, NUM31, NUM32), \
+ VARS32 (TYPE, NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, NUM39, NUM40, \
+ NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, NUM48, NUM49, \
+ NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, NUM57, NUM58, \
+ NUM59, NUM60, NUM61, NUM62, NUM63, NUM64)
+#define VARS128(TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, \
+ NUM10, NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, \
+ NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, \
+ NUM28, NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, \
+ NUM37, NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, \
+ NUM46, NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, \
+ NUM55, NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, \
+ NUM64, NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, \
+ NUM73, NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, \
+ NUM82, NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, \
+ NUM91, NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \
+ NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, \
+ NUM107, NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, \
+ NUM114, NUM115, NUM116, NUM117, NUM118, NUM119, NUM120, \
+ NUM121, NUM122, NUM123, NUM124, NUM125, NUM126, NUM127, \
+ NUM128) \
+ VARS64 (TYPE, NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \
+ NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \
+ NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \
+ NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \
+ NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \
+ NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64), \
+ VARS64 (TYPE, NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, \
+ NUM73, NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, \
+ NUM82, NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, \
+ NUM91, NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \
+ NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, NUM107, \
+ NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, NUM114, NUM115, \
+ NUM116, NUM117, NUM118, NUM119, NUM120, NUM121, NUM122, NUM123, \
+ NUM124, NUM125, NUM126, NUM127, NUM128)
+
+#define INIT2(NUM1, NUM2) var##NUM1, var##NUM2
+#define INIT4(NUM1, NUM2, NUM3, NUM4) INIT2 (NUM1, NUM2), INIT2 (NUM3, NUM4)
+#define INIT8(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8) \
+ INIT4 (NUM1, NUM2, NUM3, NUM4), INIT4 (NUM5, NUM6, NUM7, NUM8)
+#define INIT16(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16) \
+ INIT4 (NUM1, NUM2, NUM3, NUM4), INIT4 (NUM5, NUM6, NUM7, NUM8)
+#define INIT32(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \
+ NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \
+ NUM29, NUM30, NUM31, NUM32) \
+ INIT16 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \
+ NUM12, NUM13, NUM14, NUM15, NUM16), \
+ INIT16 (NUM17, NUM18, NUM19, NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, \
+ NUM26, NUM27, NUM28, NUM29, NUM30, NUM31, NUM32)
+#define INIT64(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \
+ NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \
+ NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \
+ NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \
+ NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \
+ NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64) \
+ INIT32 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \
+ NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, NUM20, \
+ NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, NUM29, \
+ NUM30, NUM31, NUM32), \
+ INIT32 (NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, NUM39, NUM40, NUM41, \
+ NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, NUM48, NUM49, NUM50, \
+ NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, NUM57, NUM58, NUM59, \
+ NUM60, NUM61, NUM62, NUM63, NUM64)
+#define INIT128(NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, \
+ NUM11, NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, \
+ NUM20, NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, \
+ NUM29, NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, \
+ NUM38, NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, \
+ NUM47, NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, \
+ NUM56, NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64, \
+ NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, NUM73, \
+ NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, NUM82, \
+ NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, NUM91, \
+ NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, \
+ NUM100, NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, \
+ NUM107, NUM108, NUM109, NUM110, NUM111, NUM112, NUM113, \
+ NUM114, NUM115, NUM116, NUM117, NUM118, NUM119, NUM120, \
+ NUM121, NUM122, NUM123, NUM124, NUM125, NUM126, NUM127, \
+ NUM128) \
+ INIT64 (NUM1, NUM2, NUM3, NUM4, NUM5, NUM6, NUM7, NUM8, NUM9, NUM10, NUM11, \
+ NUM12, NUM13, NUM14, NUM15, NUM16, NUM17, NUM18, NUM19, NUM20, \
+ NUM21, NUM22, NUM23, NUM24, NUM25, NUM26, NUM27, NUM28, NUM29, \
+ NUM30, NUM31, NUM32, NUM33, NUM34, NUM35, NUM36, NUM37, NUM38, \
+ NUM39, NUM40, NUM41, NUM42, NUM43, NUM44, NUM45, NUM46, NUM47, \
+ NUM48, NUM49, NUM50, NUM51, NUM52, NUM53, NUM54, NUM55, NUM56, \
+ NUM57, NUM58, NUM59, NUM60, NUM61, NUM62, NUM63, NUM64), \
+ INIT64 (NUM65, NUM66, NUM67, NUM68, NUM69, NUM70, NUM71, NUM72, NUM73, \
+ NUM74, NUM75, NUM76, NUM77, NUM78, NUM79, NUM80, NUM81, NUM82, \
+ NUM83, NUM84, NUM85, NUM86, NUM87, NUM88, NUM89, NUM90, NUM91, \
+ NUM92, NUM93, NUM94, NUM95, NUM96, NUM97, NUM98, NUM99, NUM100, \
+ NUM101, NUM102, NUM103, NUM104, NUM105, NUM106, NUM107, NUM108, \
+ NUM109, NUM110, NUM111, NUM112, NUM113, NUM114, NUM115, NUM116, \
+ NUM117, NUM118, NUM119, NUM120, NUM121, NUM122, NUM123, NUM124, \
+ NUM125, NUM126, NUM127, NUM128)
+
+#define DEF_INIT(TYPE1, TYPE2, NUM, ...) \
+ void init_##TYPE1##_##TYPE2##_##NUM (VARS##NUM (TYPE2, __VA_ARGS__), \
+ TYPE2 *__restrict out) \
+ { \
+ TYPE1 v = {INIT##NUM (__VA_ARGS__)}; \
+ *(TYPE1 *) out = v; \
+ }
+
+#define DEF_REPEAT(TYPE1, TYPE2, NUM, ...) \
+ void init_##TYPE1##_##TYPE2##_##NUM (TYPE2 var0, TYPE2 var1, \
+ TYPE2 *__restrict out) \
+ { \
+ TYPE1 v = {__VA_ARGS__}; \
+ *(TYPE1 *) out = v; \
+ }
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c
index 40224c6..e36fa9d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/div-1.c
@@ -54,5 +54,4 @@ DEF_OP_VV (div, 256, int64_t, /)
DEF_OP_VV (div, 512, int64_t, /)
/* { dg-final { scan-assembler-times {vdivu?\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 42 } } */
-/* TODO: Ideally, we should make sure there is no "csrr vlenb". However, we still have 'csrr vlenb' for some cases since we don't support VLS mode conversion which are needed by division. */
/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c
new file mode 100644
index 0000000..907a708
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-1.c
@@ -0,0 +1,122 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_EXTRACT (int8_t, v2qi, 0)
+DEF_EXTRACT (int8_t, v4qi, 0)
+DEF_EXTRACT (int8_t, v8qi, 0)
+DEF_EXTRACT (int8_t, v16qi, 0)
+DEF_EXTRACT (int8_t, v32qi, 0)
+DEF_EXTRACT (int8_t, v64qi, 0)
+DEF_EXTRACT (int8_t, v128qi, 0)
+DEF_EXTRACT (int8_t, v256qi, 0)
+DEF_EXTRACT (int8_t, v512qi, 0)
+DEF_EXTRACT (int8_t, v1024qi, 0)
+DEF_EXTRACT (int8_t, v2048qi, 0)
+DEF_EXTRACT (int8_t, v4096qi, 0)
+DEF_EXTRACT (int16_t, v2hi, 0)
+DEF_EXTRACT (int16_t, v4hi, 0)
+DEF_EXTRACT (int16_t, v8hi, 0)
+DEF_EXTRACT (int16_t, v16hi, 0)
+DEF_EXTRACT (int16_t, v32hi, 0)
+DEF_EXTRACT (int16_t, v64hi, 0)
+DEF_EXTRACT (int16_t, v128hi, 0)
+DEF_EXTRACT (int16_t, v256hi, 0)
+DEF_EXTRACT (int16_t, v512hi, 0)
+DEF_EXTRACT (int16_t, v1024hi, 0)
+DEF_EXTRACT (int16_t, v2048hi, 0)
+DEF_EXTRACT (int32_t, v2si, 0)
+DEF_EXTRACT (int32_t, v4si, 0)
+DEF_EXTRACT (int32_t, v8si, 0)
+DEF_EXTRACT (int32_t, v16si, 0)
+DEF_EXTRACT (int32_t, v32si, 0);
+DEF_EXTRACT (int32_t, v64si, 0);
+DEF_EXTRACT (int32_t, v128si, 0)
+DEF_EXTRACT (int32_t, v256si, 0)
+DEF_EXTRACT (int32_t, v512si, 0)
+DEF_EXTRACT (int32_t, v1024si, 0)
+DEF_EXTRACT (int64_t, v2di, 0)
+DEF_EXTRACT (int64_t, v4di, 0)
+DEF_EXTRACT (int64_t, v8di, 0)
+DEF_EXTRACT (int64_t, v16di, 0)
+DEF_EXTRACT (int64_t, v32di, 0)
+DEF_EXTRACT (int64_t, v64di, 0)
+DEF_EXTRACT (int64_t, v128di, 0)
+DEF_EXTRACT (int64_t, v256di, 0)
+DEF_EXTRACT (int64_t, v512di, 0)
+DEF_EXTRACT (uint8_t, v2uqi, 0)
+DEF_EXTRACT (uint8_t, v4uqi, 0)
+DEF_EXTRACT (uint8_t, v8uqi, 0)
+DEF_EXTRACT (uint8_t, v16uqi, 0)
+DEF_EXTRACT (uint8_t, v32uqi, 0)
+DEF_EXTRACT (uint8_t, v64uqi, 0)
+DEF_EXTRACT (uint8_t, v128uqi, 0)
+DEF_EXTRACT (uint8_t, v256uqi, 0)
+DEF_EXTRACT (uint8_t, v512uqi, 0)
+DEF_EXTRACT (uint8_t, v1024uqi, 0)
+DEF_EXTRACT (uint8_t, v2048uqi, 0)
+DEF_EXTRACT (uint8_t, v4096uqi, 0)
+DEF_EXTRACT (uint16_t, v2uhi, 0)
+DEF_EXTRACT (uint16_t, v4uhi, 0)
+DEF_EXTRACT (uint16_t, v8uhi, 0)
+DEF_EXTRACT (uint16_t, v16uhi, 0)
+DEF_EXTRACT (uint16_t, v32uhi, 0)
+DEF_EXTRACT (uint16_t, v64uhi, 0)
+DEF_EXTRACT (uint16_t, v128uhi, 0)
+DEF_EXTRACT (uint16_t, v256uhi, 0)
+DEF_EXTRACT (uint16_t, v512uhi, 0)
+DEF_EXTRACT (uint16_t, v1024uhi, 0)
+DEF_EXTRACT (uint16_t, v2048uhi, 0)
+DEF_EXTRACT (uint32_t, v2usi, 0)
+DEF_EXTRACT (uint32_t, v4usi, 0)
+DEF_EXTRACT (uint32_t, v8usi, 0)
+DEF_EXTRACT (uint32_t, v16usi, 0)
+DEF_EXTRACT (uint32_t, v32usi, 0)
+DEF_EXTRACT (uint32_t, v64usi, 0)
+DEF_EXTRACT (uint32_t, v128usi, 0)
+DEF_EXTRACT (uint32_t, v256usi, 0)
+DEF_EXTRACT (uint32_t, v512usi, 0)
+DEF_EXTRACT (uint32_t, v1024usi, 0)
+DEF_EXTRACT (uint64_t, v2udi, 0)
+DEF_EXTRACT (uint64_t, v4udi, 0)
+DEF_EXTRACT (uint64_t, v8udi, 0)
+DEF_EXTRACT (uint64_t, v16udi, 0)
+DEF_EXTRACT (uint64_t, v32udi, 0)
+DEF_EXTRACT (uint64_t, v64udi, 0)
+DEF_EXTRACT (uint64_t, v128udi, 0)
+DEF_EXTRACT (uint64_t, v256udi, 0)
+DEF_EXTRACT (uint64_t, v512udi, 0)
+DEF_EXTRACT (_Float16, v2hf, 0)
+DEF_EXTRACT (_Float16, v4hf, 0)
+DEF_EXTRACT (_Float16, v8hf, 0)
+DEF_EXTRACT (_Float16, v16hf, 0)
+DEF_EXTRACT (_Float16, v32hf, 0)
+DEF_EXTRACT (_Float16, v64hf, 0)
+DEF_EXTRACT (_Float16, v128hf, 0)
+DEF_EXTRACT (_Float16, v256hf, 0)
+DEF_EXTRACT (_Float16, v512hf, 0)
+DEF_EXTRACT (_Float16, v1024hf, 0)
+DEF_EXTRACT (_Float16, v2048hf, 0)
+DEF_EXTRACT (float, v2sf, 0)
+DEF_EXTRACT (float, v4sf, 0)
+DEF_EXTRACT (float, v8sf, 0)
+DEF_EXTRACT (float, v16sf, 0)
+DEF_EXTRACT (float, v32sf, 0)
+DEF_EXTRACT (float, v64sf, 0)
+DEF_EXTRACT (float, v128sf, 0)
+DEF_EXTRACT (float, v256sf, 0)
+DEF_EXTRACT (float, v512sf, 0)
+DEF_EXTRACT (float, v1024sf, 0)
+DEF_EXTRACT (double, v2df, 0)
+DEF_EXTRACT (double, v4df, 0)
+DEF_EXTRACT (double, v8df, 0)
+DEF_EXTRACT (double, v16df, 0)
+DEF_EXTRACT (double, v32df, 0)
+DEF_EXTRACT (double, v64df, 0)
+DEF_EXTRACT (double, v128df, 0)
+DEF_EXTRACT (double, v256df, 0)
+DEF_EXTRACT (double, v512df, 0)
+
+/* { dg-final { scan-assembler-times {vmv\.x\.s} 84 } } */
+/* { dg-final { scan-assembler-times {vfmv\.f\.s} 30 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c
new file mode 100644
index 0000000..7daa074
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/extract-2.c
@@ -0,0 +1,123 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_EXTRACT (int8_t, v2qi, 1)
+DEF_EXTRACT (int8_t, v4qi, 1)
+DEF_EXTRACT (int8_t, v8qi, 1)
+DEF_EXTRACT (int8_t, v16qi, 1)
+DEF_EXTRACT (int8_t, v32qi, 1)
+DEF_EXTRACT (int8_t, v64qi, 1)
+DEF_EXTRACT (int8_t, v128qi, 1)
+DEF_EXTRACT (int8_t, v256qi, 1)
+DEF_EXTRACT (int8_t, v512qi, 1)
+DEF_EXTRACT (int8_t, v1024qi, 1)
+DEF_EXTRACT (int8_t, v2048qi, 1)
+DEF_EXTRACT (int8_t, v4096qi, 1)
+DEF_EXTRACT (int16_t, v2hi, 1)
+DEF_EXTRACT (int16_t, v4hi, 1)
+DEF_EXTRACT (int16_t, v8hi, 1)
+DEF_EXTRACT (int16_t, v16hi, 1)
+DEF_EXTRACT (int16_t, v32hi, 1)
+DEF_EXTRACT (int16_t, v64hi, 1)
+DEF_EXTRACT (int16_t, v128hi, 1)
+DEF_EXTRACT (int16_t, v256hi, 1)
+DEF_EXTRACT (int16_t, v512hi, 1)
+DEF_EXTRACT (int16_t, v1024hi, 1)
+DEF_EXTRACT (int16_t, v2048hi, 1)
+DEF_EXTRACT (int32_t, v2si, 1)
+DEF_EXTRACT (int32_t, v4si, 1)
+DEF_EXTRACT (int32_t, v8si, 1)
+DEF_EXTRACT (int32_t, v16si, 1)
+DEF_EXTRACT (int32_t, v32si, 1);
+DEF_EXTRACT (int32_t, v64si, 1);
+DEF_EXTRACT (int32_t, v128si, 1)
+DEF_EXTRACT (int32_t, v256si, 1)
+DEF_EXTRACT (int32_t, v512si, 1)
+DEF_EXTRACT (int32_t, v1024si, 1)
+DEF_EXTRACT (int64_t, v2di, 1)
+DEF_EXTRACT (int64_t, v4di, 1)
+DEF_EXTRACT (int64_t, v8di, 1)
+DEF_EXTRACT (int64_t, v16di, 1)
+DEF_EXTRACT (int64_t, v32di, 1)
+DEF_EXTRACT (int64_t, v64di, 1)
+DEF_EXTRACT (int64_t, v128di, 1)
+DEF_EXTRACT (int64_t, v256di, 1)
+DEF_EXTRACT (int64_t, v512di, 1)
+DEF_EXTRACT (uint8_t, v2uqi, 1)
+DEF_EXTRACT (uint8_t, v4uqi, 1)
+DEF_EXTRACT (uint8_t, v8uqi, 1)
+DEF_EXTRACT (uint8_t, v16uqi, 1)
+DEF_EXTRACT (uint8_t, v32uqi, 1)
+DEF_EXTRACT (uint8_t, v64uqi, 1)
+DEF_EXTRACT (uint8_t, v128uqi, 1)
+DEF_EXTRACT (uint8_t, v256uqi, 1)
+DEF_EXTRACT (uint8_t, v512uqi, 1)
+DEF_EXTRACT (uint8_t, v1024uqi, 1)
+DEF_EXTRACT (uint8_t, v2048uqi, 1)
+DEF_EXTRACT (uint8_t, v4096uqi, 1)
+DEF_EXTRACT (uint16_t, v2uhi, 1)
+DEF_EXTRACT (uint16_t, v4uhi, 1)
+DEF_EXTRACT (uint16_t, v8uhi, 1)
+DEF_EXTRACT (uint16_t, v16uhi, 1)
+DEF_EXTRACT (uint16_t, v32uhi, 1)
+DEF_EXTRACT (uint16_t, v64uhi, 1)
+DEF_EXTRACT (uint16_t, v128uhi, 1)
+DEF_EXTRACT (uint16_t, v256uhi, 1)
+DEF_EXTRACT (uint16_t, v512uhi, 1)
+DEF_EXTRACT (uint16_t, v1024uhi, 1)
+DEF_EXTRACT (uint16_t, v2048uhi, 1)
+DEF_EXTRACT (uint32_t, v2usi, 1)
+DEF_EXTRACT (uint32_t, v4usi, 1)
+DEF_EXTRACT (uint32_t, v8usi, 1)
+DEF_EXTRACT (uint32_t, v16usi, 1)
+DEF_EXTRACT (uint32_t, v32usi, 1)
+DEF_EXTRACT (uint32_t, v64usi, 1)
+DEF_EXTRACT (uint32_t, v128usi, 1)
+DEF_EXTRACT (uint32_t, v256usi, 1)
+DEF_EXTRACT (uint32_t, v512usi, 1)
+DEF_EXTRACT (uint32_t, v1024usi, 1)
+DEF_EXTRACT (uint64_t, v2udi, 1)
+DEF_EXTRACT (uint64_t, v4udi, 1)
+DEF_EXTRACT (uint64_t, v8udi, 1)
+DEF_EXTRACT (uint64_t, v16udi, 1)
+DEF_EXTRACT (uint64_t, v32udi, 1)
+DEF_EXTRACT (uint64_t, v64udi, 1)
+DEF_EXTRACT (uint64_t, v128udi, 1)
+DEF_EXTRACT (uint64_t, v256udi, 1)
+DEF_EXTRACT (uint64_t, v512udi, 1)
+DEF_EXTRACT (_Float16, v2hf, 1)
+DEF_EXTRACT (_Float16, v4hf, 1)
+DEF_EXTRACT (_Float16, v8hf, 1)
+DEF_EXTRACT (_Float16, v16hf, 1)
+DEF_EXTRACT (_Float16, v32hf, 1)
+DEF_EXTRACT (_Float16, v64hf, 1)
+DEF_EXTRACT (_Float16, v128hf, 1)
+DEF_EXTRACT (_Float16, v256hf, 1)
+DEF_EXTRACT (_Float16, v512hf, 1)
+DEF_EXTRACT (_Float16, v1024hf, 1)
+DEF_EXTRACT (_Float16, v2048hf, 1)
+DEF_EXTRACT (float, v2sf, 1)
+DEF_EXTRACT (float, v4sf, 1)
+DEF_EXTRACT (float, v8sf, 1)
+DEF_EXTRACT (float, v16sf, 1)
+DEF_EXTRACT (float, v32sf, 1)
+DEF_EXTRACT (float, v64sf, 1)
+DEF_EXTRACT (float, v128sf, 1)
+DEF_EXTRACT (float, v256sf, 1)
+DEF_EXTRACT (float, v512sf, 1)
+DEF_EXTRACT (float, v1024sf, 1)
+DEF_EXTRACT (double, v2df, 1)
+DEF_EXTRACT (double, v4df, 1)
+DEF_EXTRACT (double, v8df, 1)
+DEF_EXTRACT (double, v16df, 1)
+DEF_EXTRACT (double, v32df, 1)
+DEF_EXTRACT (double, v64df, 1)
+DEF_EXTRACT (double, v128df, 1)
+DEF_EXTRACT (double, v256df, 1)
+DEF_EXTRACT (double, v512df, 1)
+
+/* { dg-final { scan-assembler-times {vmv\.x\.s} 84 } } */
+/* { dg-final { scan-assembler-times {vfmv\.f\.s} 30 } } */
+/* { dg-final { scan-assembler-times {vslidedown.vi} 114 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c
new file mode 100644
index 0000000..86c23ef
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-1.c
@@ -0,0 +1,43 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_SGNJX_VV (sgnj, 1, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 2, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 4, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 8, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 16, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 32, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 64, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 128, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 256, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 512, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 1024, _Float16, __builtin_copysignf16)
+DEF_SGNJX_VV (sgnj, 2048, _Float16, __builtin_copysignf16)
+
+DEF_SGNJX_VV (sgnj, 1, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 2, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 4, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 8, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 16, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 32, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 64, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 128, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 256, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 512, float, __builtin_copysignf)
+DEF_SGNJX_VV (sgnj, 1024, float, __builtin_copysignf)
+
+DEF_SGNJX_VV (sgnj, 1, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 2, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 4, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 8, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 16, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 32, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 64, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 128, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 256, double, __builtin_copysign)
+DEF_SGNJX_VV (sgnj, 512, double, __builtin_copysign)
+
+/* { dg-final { scan-assembler-times {vfsgnjx\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 30 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c
new file mode 100644
index 0000000..7e017de
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/floating-point-sgnjx-2.c
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+#include <math.h>
+
+DEF_SGNJX_VV (sgnj, 1, float, copysignf)
+DEF_SGNJX_VV (sgnj, 2, float, copysignf)
+DEF_SGNJX_VV (sgnj, 4, float, copysignf)
+DEF_SGNJX_VV (sgnj, 8, float, copysignf)
+DEF_SGNJX_VV (sgnj, 16, float, copysignf)
+DEF_SGNJX_VV (sgnj, 32, float, copysignf)
+DEF_SGNJX_VV (sgnj, 64, float, copysignf)
+DEF_SGNJX_VV (sgnj, 128, float, copysignf)
+DEF_SGNJX_VV (sgnj, 256, float, copysignf)
+DEF_SGNJX_VV (sgnj, 512, float, copysignf)
+DEF_SGNJX_VV (sgnj, 1024, float, copysignf)
+
+DEF_SGNJX_VV (sgnj, 1, double, copysign)
+DEF_SGNJX_VV (sgnj, 2, double, copysign)
+DEF_SGNJX_VV (sgnj, 4, double, copysign)
+DEF_SGNJX_VV (sgnj, 8, double, copysign)
+DEF_SGNJX_VV (sgnj, 16, double, copysign)
+DEF_SGNJX_VV (sgnj, 32, double, copysign)
+DEF_SGNJX_VV (sgnj, 64, double, copysign)
+DEF_SGNJX_VV (sgnj, 128, double, copysign)
+DEF_SGNJX_VV (sgnj, 256, double, copysign)
+DEF_SGNJX_VV (sgnj, 512, double, copysign)
+
+/* { dg-final { scan-assembler-times {vfsgnjx\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 19 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c
new file mode 100644
index 0000000..aec2c6e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-1.c
@@ -0,0 +1,46 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2qi, int8_t, 2, 0, 1)
+DEF_INIT (v4qi, int8_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8qi, int8_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16qi, int8_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32qi, int8_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64qi, int8_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128qi, int8_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127)
+DEF_INIT (v2uqi, uint8_t, 2, 0, 1)
+DEF_INIT (v4uqi, uint8_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8uqi, uint8_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16uqi, uint8_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32uqi, uint8_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64uqi, uint8_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128uqi, uint8_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+
+/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c
new file mode 100644
index 0000000..f9c58ae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-2.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl256b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2hi, int16_t, 2, 0, 1)
+DEF_INIT (v4hi, int16_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8hi, int16_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16hi, int16_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32hi, int16_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64hi, int16_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128hi, int16_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+DEF_INIT (v2uhi, uint16_t, 2, 0, 1)
+DEF_INIT (v4uhi, uint16_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8uhi, uint16_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16uhi, uint16_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15)
+DEF_INIT (v32uhi, uint16_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31)
+DEF_INIT (v64uhi, uint16_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128uhi, uint16_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+
+/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c
new file mode 100644
index 0000000..eb970c7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-3.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl256b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2hf, _Float16, 2, 0, 1)
+DEF_INIT (v4hf, _Float16, 4, 0, 1, 2, 3)
+DEF_INIT (v8hf, _Float16, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16hf, _Float16, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32hf, _Float16, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64hf, _Float16, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128hf, _Float16, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+
+/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c
new file mode 100644
index 0000000..fedeb44
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-4.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl512b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2si, int32_t, 2, 0, 1)
+DEF_INIT (v4si, int32_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8si, int32_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16si, int32_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32si, int32_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64si, int32_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128si, int32_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+DEF_INIT (v2usi, uint32_t, 2, 0, 1)
+DEF_INIT (v4usi, uint32_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8usi, uint32_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16usi, uint32_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15)
+DEF_INIT (v32usi, uint32_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31)
+DEF_INIT (v64usi, uint32_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128usi, uint32_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+
+/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c
new file mode 100644
index 0000000..c93ac52
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-5.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl512b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2sf, float, 2, 0, 1)
+DEF_INIT (v4sf, float, 4, 0, 1, 2, 3)
+DEF_INIT (v8sf, float, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16sf, float, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32sf, float, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64sf, float, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128sf, float, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127)
+
+/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c
new file mode 100644
index 0000000..304539f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-6.c
@@ -0,0 +1,48 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl1024b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2di, int64_t, 2, 0, 1)
+DEF_INIT (v4di, int64_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8di, int64_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16di, int64_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32di, int64_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64di, int64_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128di, int64_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+DEF_INIT (v2udi, uint64_t, 2, 0, 1)
+DEF_INIT (v4udi, uint64_t, 4, 0, 1, 2, 3)
+DEF_INIT (v8udi, uint64_t, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16udi, uint64_t, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15)
+DEF_INIT (v32udi, uint64_t, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31)
+DEF_INIT (v64udi, uint64_t, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128udi, uint64_t, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127)
+
+/* { dg-final { scan-assembler-times {vslide1down\.vx} 494 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c
new file mode 100644
index 0000000..4b96601
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/init-7.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl1024b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_INIT (v2df, double, 2, 0, 1)
+DEF_INIT (v4df, double, 4, 0, 1, 2, 3)
+DEF_INIT (v8df, double, 8, 0, 1, 2, 3, 4, 5, 6, 7)
+DEF_INIT (v16df, double, 16, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15)
+DEF_INIT (v32df, double, 32, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
+DEF_INIT (v64df, double, 64, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
+DEF_INIT (v128df, double, 128, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127)
+
+/* { dg-final { scan-assembler-times {vfslide1down\.vf} 247 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-1.c
new file mode 100644
index 0000000..d5b65ff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-1.c
@@ -0,0 +1,69 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_MASK_LOGIC (and, 1, int8_t, &)
+DEF_MASK_LOGIC (and, 2, int8_t, &)
+DEF_MASK_LOGIC (and, 4, int8_t, &)
+DEF_MASK_LOGIC (and, 8, int8_t, &)
+DEF_MASK_LOGIC (and, 16, int8_t, &)
+DEF_MASK_LOGIC (and, 32, int8_t, &)
+DEF_MASK_LOGIC (and, 64, int8_t, &)
+DEF_MASK_LOGIC (and, 128, int8_t, &)
+DEF_MASK_LOGIC (and, 256, int8_t, &)
+DEF_MASK_LOGIC (and, 512, int8_t, &)
+DEF_MASK_LOGIC (and, 1024, int8_t, &)
+DEF_MASK_LOGIC (and, 2048, int8_t, &)
+DEF_MASK_LOGIC (and, 4096, int8_t, &)
+
+DEF_MASK_LOGIC (and, 1, int16_t, &)
+DEF_MASK_LOGIC (and, 2, int16_t, &)
+DEF_MASK_LOGIC (and, 4, int16_t, &)
+DEF_MASK_LOGIC (and, 8, int16_t, &)
+DEF_MASK_LOGIC (and, 16, int16_t, &)
+DEF_MASK_LOGIC (and, 32, int16_t, &)
+DEF_MASK_LOGIC (and, 64, int16_t, &)
+DEF_MASK_LOGIC (and, 128, int16_t, &)
+DEF_MASK_LOGIC (and, 256, int16_t, &)
+DEF_MASK_LOGIC (and, 512, int16_t, &)
+DEF_MASK_LOGIC (and, 1024, int16_t, &)
+DEF_MASK_LOGIC (and, 2048, int16_t, &)
+
+DEF_MASK_LOGIC (and, 1, int32_t, &)
+DEF_MASK_LOGIC (and, 2, int32_t, &)
+DEF_MASK_LOGIC (and, 4, int32_t, &)
+DEF_MASK_LOGIC (and, 8, int32_t, &)
+DEF_MASK_LOGIC (and, 16, int32_t, &)
+DEF_MASK_LOGIC (and, 32, int32_t, &)
+DEF_MASK_LOGIC (and, 64, int32_t, &)
+DEF_MASK_LOGIC (and, 128, int32_t, &)
+DEF_MASK_LOGIC (and, 256, int32_t, &)
+DEF_MASK_LOGIC (and, 512, int32_t, &)
+DEF_MASK_LOGIC (and, 1024, int32_t, &)
+
+DEF_MASK_LOGIC (and, 1, int64_t, &)
+DEF_MASK_LOGIC (and, 2, int64_t, &)
+DEF_MASK_LOGIC (and, 4, int64_t, &)
+DEF_MASK_LOGIC (and, 8, int64_t, &)
+DEF_MASK_LOGIC (and, 16, int64_t, &)
+DEF_MASK_LOGIC (and, 32, int64_t, &)
+DEF_MASK_LOGIC (and, 64, int64_t, &)
+DEF_MASK_LOGIC (and, 128, int64_t, &)
+DEF_MASK_LOGIC (and, 256, int64_t, &)
+DEF_MASK_LOGIC (and, 512, int64_t, &)
+
+/* { dg-final { scan-assembler-times {vmand\.mm} 42 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-2.c
new file mode 100644
index 0000000..7fe4ec9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-2.c
@@ -0,0 +1,69 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_MASK_LOGIC (and, 1, int8_t, |)
+DEF_MASK_LOGIC (and, 2, int8_t, |)
+DEF_MASK_LOGIC (and, 4, int8_t, |)
+DEF_MASK_LOGIC (and, 8, int8_t, |)
+DEF_MASK_LOGIC (and, 16, int8_t, |)
+DEF_MASK_LOGIC (and, 32, int8_t, |)
+DEF_MASK_LOGIC (and, 64, int8_t, |)
+DEF_MASK_LOGIC (and, 128, int8_t, |)
+DEF_MASK_LOGIC (and, 256, int8_t, |)
+DEF_MASK_LOGIC (and, 512, int8_t, |)
+DEF_MASK_LOGIC (and, 1024, int8_t, |)
+DEF_MASK_LOGIC (and, 2048, int8_t, |)
+DEF_MASK_LOGIC (and, 4096, int8_t, |)
+
+DEF_MASK_LOGIC (and, 1, int16_t, |)
+DEF_MASK_LOGIC (and, 2, int16_t, |)
+DEF_MASK_LOGIC (and, 4, int16_t, |)
+DEF_MASK_LOGIC (and, 8, int16_t, |)
+DEF_MASK_LOGIC (and, 16, int16_t, |)
+DEF_MASK_LOGIC (and, 32, int16_t, |)
+DEF_MASK_LOGIC (and, 64, int16_t, |)
+DEF_MASK_LOGIC (and, 128, int16_t, |)
+DEF_MASK_LOGIC (and, 256, int16_t, |)
+DEF_MASK_LOGIC (and, 512, int16_t, |)
+DEF_MASK_LOGIC (and, 1024, int16_t, |)
+DEF_MASK_LOGIC (and, 2048, int16_t, |)
+
+DEF_MASK_LOGIC (and, 1, int32_t, |)
+DEF_MASK_LOGIC (and, 2, int32_t, |)
+DEF_MASK_LOGIC (and, 4, int32_t, |)
+DEF_MASK_LOGIC (and, 8, int32_t, |)
+DEF_MASK_LOGIC (and, 16, int32_t, |)
+DEF_MASK_LOGIC (and, 32, int32_t, |)
+DEF_MASK_LOGIC (and, 64, int32_t, |)
+DEF_MASK_LOGIC (and, 128, int32_t, |)
+DEF_MASK_LOGIC (and, 256, int32_t, |)
+DEF_MASK_LOGIC (and, 512, int32_t, |)
+DEF_MASK_LOGIC (and, 1024, int32_t, |)
+
+DEF_MASK_LOGIC (and, 1, int64_t, |)
+DEF_MASK_LOGIC (and, 2, int64_t, |)
+DEF_MASK_LOGIC (and, 4, int64_t, |)
+DEF_MASK_LOGIC (and, 8, int64_t, |)
+DEF_MASK_LOGIC (and, 16, int64_t, |)
+DEF_MASK_LOGIC (and, 32, int64_t, |)
+DEF_MASK_LOGIC (and, 64, int64_t, |)
+DEF_MASK_LOGIC (and, 128, int64_t, |)
+DEF_MASK_LOGIC (and, 256, int64_t, |)
+DEF_MASK_LOGIC (and, 512, int64_t, |)
+
+/* { dg-final { scan-assembler-times {vmor\.mm} 42 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-3.c
new file mode 100644
index 0000000..7d2254b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/mask-3.c
@@ -0,0 +1,69 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 -fno-schedule-insns -fno-schedule-insns2 --param=riscv-autovec-lmul=m8 -fdump-tree-optimized" } */
+
+#include "def.h"
+
+DEF_MASK_LOGIC (and, 1, int8_t, ^)
+DEF_MASK_LOGIC (and, 2, int8_t, ^)
+DEF_MASK_LOGIC (and, 4, int8_t, ^)
+DEF_MASK_LOGIC (and, 8, int8_t, ^)
+DEF_MASK_LOGIC (and, 16, int8_t, ^)
+DEF_MASK_LOGIC (and, 32, int8_t, ^)
+DEF_MASK_LOGIC (and, 64, int8_t, ^)
+DEF_MASK_LOGIC (and, 128, int8_t, ^)
+DEF_MASK_LOGIC (and, 256, int8_t, ^)
+DEF_MASK_LOGIC (and, 512, int8_t, ^)
+DEF_MASK_LOGIC (and, 1024, int8_t, ^)
+DEF_MASK_LOGIC (and, 2048, int8_t, ^)
+DEF_MASK_LOGIC (and, 4096, int8_t, ^)
+
+DEF_MASK_LOGIC (and, 1, int16_t, ^)
+DEF_MASK_LOGIC (and, 2, int16_t, ^)
+DEF_MASK_LOGIC (and, 4, int16_t, ^)
+DEF_MASK_LOGIC (and, 8, int16_t, ^)
+DEF_MASK_LOGIC (and, 16, int16_t, ^)
+DEF_MASK_LOGIC (and, 32, int16_t, ^)
+DEF_MASK_LOGIC (and, 64, int16_t, ^)
+DEF_MASK_LOGIC (and, 128, int16_t, ^)
+DEF_MASK_LOGIC (and, 256, int16_t, ^)
+DEF_MASK_LOGIC (and, 512, int16_t, ^)
+DEF_MASK_LOGIC (and, 1024, int16_t, ^)
+DEF_MASK_LOGIC (and, 2048, int16_t, ^)
+
+DEF_MASK_LOGIC (and, 1, int32_t, ^)
+DEF_MASK_LOGIC (and, 2, int32_t, ^)
+DEF_MASK_LOGIC (and, 4, int32_t, ^)
+DEF_MASK_LOGIC (and, 8, int32_t, ^)
+DEF_MASK_LOGIC (and, 16, int32_t, ^)
+DEF_MASK_LOGIC (and, 32, int32_t, ^)
+DEF_MASK_LOGIC (and, 64, int32_t, ^)
+DEF_MASK_LOGIC (and, 128, int32_t, ^)
+DEF_MASK_LOGIC (and, 256, int32_t, ^)
+DEF_MASK_LOGIC (and, 512, int32_t, ^)
+DEF_MASK_LOGIC (and, 1024, int32_t, ^)
+
+DEF_MASK_LOGIC (and, 1, int64_t, ^)
+DEF_MASK_LOGIC (and, 2, int64_t, ^)
+DEF_MASK_LOGIC (and, 4, int64_t, ^)
+DEF_MASK_LOGIC (and, 8, int64_t, ^)
+DEF_MASK_LOGIC (and, 16, int64_t, ^)
+DEF_MASK_LOGIC (and, 32, int64_t, ^)
+DEF_MASK_LOGIC (and, 64, int64_t, ^)
+DEF_MASK_LOGIC (and, 128, int64_t, ^)
+DEF_MASK_LOGIC (and, 256, int64_t, ^)
+DEF_MASK_LOGIC (and, 512, int64_t, ^)
+
+/* { dg-final { scan-assembler-times {vmxor\.mm} 42 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
+/* { dg-final { scan-tree-dump-not "1,1" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2,2" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4,4" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "16,16" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "32,32" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "64,64" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "128,128" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "256,256" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "512,512" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "1024,1024" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "2048,2048" "optimized" } } */
+/* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-1.c
new file mode 100644
index 0000000..2db25a2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-1.c
@@ -0,0 +1,31 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (int8_t, 4)
+DEF_REDUC_PLUS (int8_t, 8)
+DEF_REDUC_PLUS (int8_t, 16)
+DEF_REDUC_PLUS (int8_t, 32)
+DEF_REDUC_PLUS (int8_t, 64)
+DEF_REDUC_PLUS (int8_t, 128)
+DEF_REDUC_PLUS (int8_t, 256)
+DEF_REDUC_PLUS (int8_t, 512)
+DEF_REDUC_PLUS (int8_t, 1024)
+DEF_REDUC_PLUS (int8_t, 2048)
+DEF_REDUC_PLUS (int8_t, 4096)
+
+DEF_REDUC_PLUS (uint8_t, 4)
+DEF_REDUC_PLUS (uint8_t, 8)
+DEF_REDUC_PLUS (uint8_t, 16)
+DEF_REDUC_PLUS (uint8_t, 32)
+DEF_REDUC_PLUS (uint8_t, 64)
+DEF_REDUC_PLUS (uint8_t, 128)
+DEF_REDUC_PLUS (uint8_t, 256)
+DEF_REDUC_PLUS (uint8_t, 512)
+DEF_REDUC_PLUS (uint8_t, 1024)
+DEF_REDUC_PLUS (uint8_t, 2048)
+DEF_REDUC_PLUS (uint8_t, 4096)
+
+/* { dg-final { scan-assembler-times {vredsum\.vs} 22 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-10.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-10.c
new file mode 100644
index 0000000..cdbbe11
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-10.c
@@ -0,0 +1,50 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (int32_t, max, >, 4)
+DEF_REDUC_MAXMIN (int32_t, max, >, 8)
+DEF_REDUC_MAXMIN (int32_t, max, >, 16)
+DEF_REDUC_MAXMIN (int32_t, max, >, 32)
+DEF_REDUC_MAXMIN (int32_t, max, >, 64)
+DEF_REDUC_MAXMIN (int32_t, max, >, 128)
+DEF_REDUC_MAXMIN (int32_t, max, >, 256)
+DEF_REDUC_MAXMIN (int32_t, max, >, 512)
+DEF_REDUC_MAXMIN (int32_t, max, >, 1024)
+
+DEF_REDUC_MAXMIN (uint32_t, max, >, 4)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 8)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 16)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 32)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 64)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 128)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 256)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 512)
+DEF_REDUC_MAXMIN (uint32_t, max, >, 1024)
+
+DEF_REDUC_MAXMIN (int32_t, min, <, 4)
+DEF_REDUC_MAXMIN (int32_t, min, <, 8)
+DEF_REDUC_MAXMIN (int32_t, min, <, 16)
+DEF_REDUC_MAXMIN (int32_t, min, <, 32)
+DEF_REDUC_MAXMIN (int32_t, min, <, 64)
+DEF_REDUC_MAXMIN (int32_t, min, <, 128)
+DEF_REDUC_MAXMIN (int32_t, min, <, 256)
+DEF_REDUC_MAXMIN (int32_t, min, <, 512)
+DEF_REDUC_MAXMIN (int32_t, min, <, 1024)
+
+DEF_REDUC_MAXMIN (uint32_t, min, <, 4)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 8)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 16)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 32)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 64)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 128)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 256)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 512)
+DEF_REDUC_MAXMIN (uint32_t, min, <, 1024)
+
+/* { dg-final { scan-assembler-times {vredmax\.vs} 9 } } */
+/* { dg-final { scan-assembler-times {vredmaxu\.vs} 9 } } */
+/* { dg-final { scan-assembler-times {vredmin\.vs} 9 } } */
+/* { dg-final { scan-assembler-times {vredminu\.vs} 9 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-11.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-11.c
new file mode 100644
index 0000000..d204031
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-11.c
@@ -0,0 +1,46 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (int64_t, max, >, 4)
+DEF_REDUC_MAXMIN (int64_t, max, >, 8)
+DEF_REDUC_MAXMIN (int64_t, max, >, 16)
+DEF_REDUC_MAXMIN (int64_t, max, >, 32)
+DEF_REDUC_MAXMIN (int64_t, max, >, 64)
+DEF_REDUC_MAXMIN (int64_t, max, >, 128)
+DEF_REDUC_MAXMIN (int64_t, max, >, 256)
+DEF_REDUC_MAXMIN (int64_t, max, >, 512)
+
+DEF_REDUC_MAXMIN (uint64_t, max, >, 4)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 8)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 16)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 32)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 64)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 128)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 256)
+DEF_REDUC_MAXMIN (uint64_t, max, >, 512)
+
+DEF_REDUC_MAXMIN (int64_t, min, <, 4)
+DEF_REDUC_MAXMIN (int64_t, min, <, 8)
+DEF_REDUC_MAXMIN (int64_t, min, <, 16)
+DEF_REDUC_MAXMIN (int64_t, min, <, 32)
+DEF_REDUC_MAXMIN (int64_t, min, <, 64)
+DEF_REDUC_MAXMIN (int64_t, min, <, 128)
+DEF_REDUC_MAXMIN (int64_t, min, <, 256)
+DEF_REDUC_MAXMIN (int64_t, min, <, 512)
+
+DEF_REDUC_MAXMIN (uint64_t, min, <, 4)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 8)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 16)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 32)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 64)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 128)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 256)
+DEF_REDUC_MAXMIN (uint64_t, min, <, 512)
+
+/* { dg-final { scan-assembler-times {vredmax\.vs} 8 } } */
+/* { dg-final { scan-assembler-times {vredmaxu\.vs} 8 } } */
+/* { dg-final { scan-assembler-times {vredmin\.vs} 8 } } */
+/* { dg-final { scan-assembler-times {vredminu\.vs} 8 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-12.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-12.c
new file mode 100644
index 0000000..97660d2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-12.c
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (_Float16, max, >, 4)
+DEF_REDUC_MAXMIN (_Float16, max, >, 8)
+DEF_REDUC_MAXMIN (_Float16, max, >, 16)
+DEF_REDUC_MAXMIN (_Float16, max, >, 32)
+DEF_REDUC_MAXMIN (_Float16, max, >, 64)
+DEF_REDUC_MAXMIN (_Float16, max, >, 128)
+DEF_REDUC_MAXMIN (_Float16, max, >, 256)
+DEF_REDUC_MAXMIN (_Float16, max, >, 512)
+DEF_REDUC_MAXMIN (_Float16, max, >, 1024)
+DEF_REDUC_MAXMIN (_Float16, max, >, 2048)
+
+DEF_REDUC_MAXMIN (_Float16, min, <, 4)
+DEF_REDUC_MAXMIN (_Float16, min, <, 8)
+DEF_REDUC_MAXMIN (_Float16, min, <, 16)
+DEF_REDUC_MAXMIN (_Float16, min, <, 32)
+DEF_REDUC_MAXMIN (_Float16, min, <, 64)
+DEF_REDUC_MAXMIN (_Float16, min, <, 128)
+DEF_REDUC_MAXMIN (_Float16, min, <, 256)
+DEF_REDUC_MAXMIN (_Float16, min, <, 512)
+DEF_REDUC_MAXMIN (_Float16, min, <, 1024)
+DEF_REDUC_MAXMIN (_Float16, min, <, 2048)
+
+/* { dg-final { scan-assembler-times {vfredmax\.vs} 10 } } */
+/* { dg-final { scan-assembler-times {vfredmin\.vs} 10 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-13.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-13.c
new file mode 100644
index 0000000..e4bc95c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-13.c
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (float, max, >, 4)
+DEF_REDUC_MAXMIN (float, max, >, 8)
+DEF_REDUC_MAXMIN (float, max, >, 16)
+DEF_REDUC_MAXMIN (float, max, >, 32)
+DEF_REDUC_MAXMIN (float, max, >, 64)
+DEF_REDUC_MAXMIN (float, max, >, 128)
+DEF_REDUC_MAXMIN (float, max, >, 256)
+DEF_REDUC_MAXMIN (float, max, >, 512)
+DEF_REDUC_MAXMIN (float, max, >, 1024)
+
+DEF_REDUC_MAXMIN (float, min, <, 4)
+DEF_REDUC_MAXMIN (float, min, <, 8)
+DEF_REDUC_MAXMIN (float, min, <, 16)
+DEF_REDUC_MAXMIN (float, min, <, 32)
+DEF_REDUC_MAXMIN (float, min, <, 64)
+DEF_REDUC_MAXMIN (float, min, <, 128)
+DEF_REDUC_MAXMIN (float, min, <, 256)
+DEF_REDUC_MAXMIN (float, min, <, 512)
+DEF_REDUC_MAXMIN (float, min, <, 1024)
+
+/* { dg-final { scan-assembler-times {vfredmax\.vs} 9 } } */
+/* { dg-final { scan-assembler-times {vfredmin\.vs} 9 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-14.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-14.c
new file mode 100644
index 0000000..c90e926
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-14.c
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (double, max, >, 4)
+DEF_REDUC_MAXMIN (double, max, >, 8)
+DEF_REDUC_MAXMIN (double, max, >, 16)
+DEF_REDUC_MAXMIN (double, max, >, 32)
+DEF_REDUC_MAXMIN (double, max, >, 64)
+DEF_REDUC_MAXMIN (double, max, >, 128)
+DEF_REDUC_MAXMIN (double, max, >, 256)
+DEF_REDUC_MAXMIN (double, max, >, 512)
+
+DEF_REDUC_MAXMIN (double, min, <, 4)
+DEF_REDUC_MAXMIN (double, min, <, 8)
+DEF_REDUC_MAXMIN (double, min, <, 16)
+DEF_REDUC_MAXMIN (double, min, <, 32)
+DEF_REDUC_MAXMIN (double, min, <, 64)
+DEF_REDUC_MAXMIN (double, min, <, 128)
+DEF_REDUC_MAXMIN (double, min, <, 256)
+DEF_REDUC_MAXMIN (double, min, <, 512)
+
+/* { dg-final { scan-assembler-times {vfredmax\.vs} 8 } } */
+/* { dg-final { scan-assembler-times {vfredmin\.vs} 8 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-15.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-15.c
new file mode 100644
index 0000000..65863f7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-15.c
@@ -0,0 +1,81 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_BITWISE (int8_t, and, &=, 4)
+DEF_REDUC_BITWISE (int8_t, and, &=, 8)
+DEF_REDUC_BITWISE (int8_t, and, &=, 16)
+DEF_REDUC_BITWISE (int8_t, and, &=, 32)
+DEF_REDUC_BITWISE (int8_t, and, &=, 64)
+DEF_REDUC_BITWISE (int8_t, and, &=, 128)
+DEF_REDUC_BITWISE (int8_t, and, &=, 256)
+DEF_REDUC_BITWISE (int8_t, and, &=, 512)
+DEF_REDUC_BITWISE (int8_t, and, &=, 1024)
+DEF_REDUC_BITWISE (int8_t, and, &=, 2048)
+DEF_REDUC_BITWISE (int8_t, and, &=, 4096)
+
+DEF_REDUC_BITWISE (uint8_t, and, &=, 4)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 8)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 16)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 32)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 64)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 128)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 256)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 512)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 1024)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 2048)
+DEF_REDUC_BITWISE (uint8_t, and, &=, 4096)
+
+DEF_REDUC_BITWISE (int8_t, ior, |=, 4)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 8)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 16)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 32)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 64)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 128)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 256)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 512)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 1024)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 2048)
+DEF_REDUC_BITWISE (int8_t, ior, |=, 4096)
+
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 4)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 8)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 16)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 32)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 64)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 128)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 256)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 512)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 1024)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 2048)
+DEF_REDUC_BITWISE (uint8_t, ior, |=, 4096)
+
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 1024)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 2048)
+DEF_REDUC_BITWISE (int8_t, xor, ^=, 4096)
+
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 1024)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 2048)
+DEF_REDUC_BITWISE (uint8_t, xor, ^=, 4096)
+
+/* { dg-final { scan-assembler-times {vredand\.vs} 22 } } */
+/* { dg-final { scan-assembler-times {vredor\.vs} 22 } } */
+/* { dg-final { scan-assembler-times {vredxor\.vs} 22 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-16.c
new file mode 100644
index 0000000..c6c5714
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-16.c
@@ -0,0 +1,75 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_BITWISE (int16_t, and, &=, 4)
+DEF_REDUC_BITWISE (int16_t, and, &=, 8)
+DEF_REDUC_BITWISE (int16_t, and, &=, 16)
+DEF_REDUC_BITWISE (int16_t, and, &=, 32)
+DEF_REDUC_BITWISE (int16_t, and, &=, 64)
+DEF_REDUC_BITWISE (int16_t, and, &=, 128)
+DEF_REDUC_BITWISE (int16_t, and, &=, 256)
+DEF_REDUC_BITWISE (int16_t, and, &=, 512)
+DEF_REDUC_BITWISE (int16_t, and, &=, 1024)
+DEF_REDUC_BITWISE (int16_t, and, &=, 2048)
+
+DEF_REDUC_BITWISE (uint16_t, and, &=, 4)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 8)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 16)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 32)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 64)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 128)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 256)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 512)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 1024)
+DEF_REDUC_BITWISE (uint16_t, and, &=, 2048)
+
+DEF_REDUC_BITWISE (int16_t, ior, |=, 4)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 8)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 16)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 32)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 64)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 128)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 256)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 512)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 1024)
+DEF_REDUC_BITWISE (int16_t, ior, |=, 2048)
+
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 4)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 8)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 16)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 32)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 64)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 128)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 256)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 512)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 1024)
+DEF_REDUC_BITWISE (uint16_t, ior, |=, 2048)
+
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 1024)
+DEF_REDUC_BITWISE (int16_t, xor, ^=, 2048)
+
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 1024)
+DEF_REDUC_BITWISE (uint16_t, xor, ^=, 2048)
+
+/* { dg-final { scan-assembler-times {vredand\.vs} 20 } } */
+/* { dg-final { scan-assembler-times {vredor\.vs} 20 } } */
+/* { dg-final { scan-assembler-times {vredxor\.vs} 20 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-17.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-17.c
new file mode 100644
index 0000000..7598307
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-17.c
@@ -0,0 +1,69 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_BITWISE (int32_t, and, &=, 4)
+DEF_REDUC_BITWISE (int32_t, and, &=, 8)
+DEF_REDUC_BITWISE (int32_t, and, &=, 16)
+DEF_REDUC_BITWISE (int32_t, and, &=, 32)
+DEF_REDUC_BITWISE (int32_t, and, &=, 64)
+DEF_REDUC_BITWISE (int32_t, and, &=, 128)
+DEF_REDUC_BITWISE (int32_t, and, &=, 256)
+DEF_REDUC_BITWISE (int32_t, and, &=, 512)
+DEF_REDUC_BITWISE (int32_t, and, &=, 1024)
+
+DEF_REDUC_BITWISE (uint32_t, and, &=, 4)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 8)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 16)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 32)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 64)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 128)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 256)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 512)
+DEF_REDUC_BITWISE (uint32_t, and, &=, 1024)
+
+DEF_REDUC_BITWISE (int32_t, ior, |=, 4)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 8)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 16)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 32)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 64)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 128)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 256)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 512)
+DEF_REDUC_BITWISE (int32_t, ior, |=, 1024)
+
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 4)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 8)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 16)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 32)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 64)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 128)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 256)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 512)
+DEF_REDUC_BITWISE (uint32_t, ior, |=, 1024)
+
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (int32_t, xor, ^=, 1024)
+
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 512)
+DEF_REDUC_BITWISE (uint32_t, xor, ^=, 1024)
+
+/* { dg-final { scan-assembler-times {vredand\.vs} 18 } } */
+/* { dg-final { scan-assembler-times {vredor\.vs} 18 } } */
+/* { dg-final { scan-assembler-times {vredxor\.vs} 18 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-18.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-18.c
new file mode 100644
index 0000000..30dfad6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-18.c
@@ -0,0 +1,63 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_BITWISE (int64_t, and, &=, 4)
+DEF_REDUC_BITWISE (int64_t, and, &=, 8)
+DEF_REDUC_BITWISE (int64_t, and, &=, 16)
+DEF_REDUC_BITWISE (int64_t, and, &=, 32)
+DEF_REDUC_BITWISE (int64_t, and, &=, 64)
+DEF_REDUC_BITWISE (int64_t, and, &=, 128)
+DEF_REDUC_BITWISE (int64_t, and, &=, 256)
+DEF_REDUC_BITWISE (int64_t, and, &=, 512)
+
+DEF_REDUC_BITWISE (uint64_t, and, &=, 4)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 8)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 16)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 32)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 64)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 128)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 256)
+DEF_REDUC_BITWISE (uint64_t, and, &=, 512)
+
+DEF_REDUC_BITWISE (int64_t, ior, |=, 4)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 8)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 16)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 32)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 64)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 128)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 256)
+DEF_REDUC_BITWISE (int64_t, ior, |=, 512)
+
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 4)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 8)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 16)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 32)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 64)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 128)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 256)
+DEF_REDUC_BITWISE (uint64_t, ior, |=, 512)
+
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (int64_t, xor, ^=, 512)
+
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 4)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 8)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 16)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 32)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 64)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 128)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 256)
+DEF_REDUC_BITWISE (uint64_t, xor, ^=, 512)
+
+/* { dg-final { scan-assembler-times {vredand\.vs} 16 } } */
+/* { dg-final { scan-assembler-times {vredor\.vs} 16 } } */
+/* { dg-final { scan-assembler-times {vredxor\.vs} 16 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-19.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-19.c
new file mode 100644
index 0000000..a2de4d1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-19.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (_Float16, 4)
+DEF_REDUC_PLUS (_Float16, 8)
+DEF_REDUC_PLUS (_Float16, 16)
+DEF_REDUC_PLUS (_Float16, 32)
+DEF_REDUC_PLUS (_Float16, 64)
+DEF_REDUC_PLUS (_Float16, 128)
+DEF_REDUC_PLUS (_Float16, 256)
+DEF_REDUC_PLUS (_Float16, 512)
+DEF_REDUC_PLUS (_Float16, 1024)
+DEF_REDUC_PLUS (_Float16, 2048)
+
+/* { dg-final { scan-assembler-times {vfredosum\.vs} 10 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-2.c
new file mode 100644
index 0000000..9ffdec9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-2.c
@@ -0,0 +1,29 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (int16_t, 4)
+DEF_REDUC_PLUS (int16_t, 8)
+DEF_REDUC_PLUS (int16_t, 16)
+DEF_REDUC_PLUS (int16_t, 32)
+DEF_REDUC_PLUS (int16_t, 64)
+DEF_REDUC_PLUS (int16_t, 128)
+DEF_REDUC_PLUS (int16_t, 256)
+DEF_REDUC_PLUS (int16_t, 512)
+DEF_REDUC_PLUS (int16_t, 1024)
+DEF_REDUC_PLUS (int16_t, 2048)
+
+DEF_REDUC_PLUS (uint16_t, 4)
+DEF_REDUC_PLUS (uint16_t, 8)
+DEF_REDUC_PLUS (uint16_t, 16)
+DEF_REDUC_PLUS (uint16_t, 32)
+DEF_REDUC_PLUS (uint16_t, 64)
+DEF_REDUC_PLUS (uint16_t, 128)
+DEF_REDUC_PLUS (uint16_t, 256)
+DEF_REDUC_PLUS (uint16_t, 512)
+DEF_REDUC_PLUS (uint16_t, 1024)
+DEF_REDUC_PLUS (uint16_t, 2048)
+
+/* { dg-final { scan-assembler-times {vredsum\.vs} 20 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-20.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-20.c
new file mode 100644
index 0000000..8e1164a
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-20.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (float, 4)
+DEF_REDUC_PLUS (float, 8)
+DEF_REDUC_PLUS (float, 16)
+DEF_REDUC_PLUS (float, 32)
+DEF_REDUC_PLUS (float, 64)
+DEF_REDUC_PLUS (float, 128)
+DEF_REDUC_PLUS (float, 256)
+DEF_REDUC_PLUS (float, 512)
+DEF_REDUC_PLUS (float, 1024)
+
+/* { dg-final { scan-assembler-times {vfredosum\.vs} 9 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-21.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-21.c
new file mode 100644
index 0000000..727cf85
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-21.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (float, 4)
+DEF_REDUC_PLUS (float, 8)
+DEF_REDUC_PLUS (float, 16)
+DEF_REDUC_PLUS (float, 32)
+DEF_REDUC_PLUS (float, 64)
+DEF_REDUC_PLUS (float, 128)
+DEF_REDUC_PLUS (float, 256)
+DEF_REDUC_PLUS (float, 512)
+
+/* { dg-final { scan-assembler-times {vfredosum\.vs} 8 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-3.c
new file mode 100644
index 0000000..63f9697
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-3.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (int32_t, 4)
+DEF_REDUC_PLUS (int32_t, 8)
+DEF_REDUC_PLUS (int32_t, 16)
+DEF_REDUC_PLUS (int32_t, 32)
+DEF_REDUC_PLUS (int32_t, 64)
+DEF_REDUC_PLUS (int32_t, 128)
+DEF_REDUC_PLUS (int32_t, 256)
+DEF_REDUC_PLUS (int32_t, 512)
+DEF_REDUC_PLUS (int32_t, 1024)
+
+DEF_REDUC_PLUS (uint32_t, 4)
+DEF_REDUC_PLUS (uint32_t, 8)
+DEF_REDUC_PLUS (uint32_t, 16)
+DEF_REDUC_PLUS (uint32_t, 32)
+DEF_REDUC_PLUS (uint32_t, 64)
+DEF_REDUC_PLUS (uint32_t, 128)
+DEF_REDUC_PLUS (uint32_t, 256)
+DEF_REDUC_PLUS (uint32_t, 512)
+DEF_REDUC_PLUS (uint32_t, 1024)
+
+/* { dg-final { scan-assembler-times {vredsum\.vs} 18 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-4.c
new file mode 100644
index 0000000..8cd2728
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-4.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (int64_t, 4)
+DEF_REDUC_PLUS (int64_t, 8)
+DEF_REDUC_PLUS (int64_t, 16)
+DEF_REDUC_PLUS (int64_t, 32)
+DEF_REDUC_PLUS (int64_t, 64)
+DEF_REDUC_PLUS (int64_t, 128)
+DEF_REDUC_PLUS (int64_t, 256)
+DEF_REDUC_PLUS (int64_t, 512)
+
+DEF_REDUC_PLUS (uint64_t, 4)
+DEF_REDUC_PLUS (uint64_t, 8)
+DEF_REDUC_PLUS (uint64_t, 16)
+DEF_REDUC_PLUS (uint64_t, 32)
+DEF_REDUC_PLUS (uint64_t, 64)
+DEF_REDUC_PLUS (uint64_t, 128)
+DEF_REDUC_PLUS (uint64_t, 256)
+DEF_REDUC_PLUS (uint64_t, 512)
+
+/* { dg-final { scan-assembler-times {vredsum\.vs} 16 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-5.c
new file mode 100644
index 0000000..09b69fc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-5.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (_Float16, 4)
+DEF_REDUC_PLUS (_Float16, 8)
+DEF_REDUC_PLUS (_Float16, 16)
+DEF_REDUC_PLUS (_Float16, 32)
+DEF_REDUC_PLUS (_Float16, 64)
+DEF_REDUC_PLUS (_Float16, 128)
+DEF_REDUC_PLUS (_Float16, 256)
+DEF_REDUC_PLUS (_Float16, 512)
+DEF_REDUC_PLUS (_Float16, 1024)
+DEF_REDUC_PLUS (_Float16, 2048)
+
+/* { dg-final { scan-assembler-times {vfredusum\.vs} 10 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-6.c
new file mode 100644
index 0000000..56b13dc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-6.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (float, 4)
+DEF_REDUC_PLUS (float, 8)
+DEF_REDUC_PLUS (float, 16)
+DEF_REDUC_PLUS (float, 32)
+DEF_REDUC_PLUS (float, 64)
+DEF_REDUC_PLUS (float, 128)
+DEF_REDUC_PLUS (float, 256)
+DEF_REDUC_PLUS (float, 512)
+DEF_REDUC_PLUS (float, 1024)
+
+/* { dg-final { scan-assembler-times {vfredusum\.vs} 9 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-7.c
new file mode 100644
index 0000000..eb5de35
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-7.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8 -ffast-math" } */
+
+#include "def.h"
+
+DEF_REDUC_PLUS (double, 4)
+DEF_REDUC_PLUS (double, 8)
+DEF_REDUC_PLUS (double, 16)
+DEF_REDUC_PLUS (double, 32)
+DEF_REDUC_PLUS (double, 64)
+DEF_REDUC_PLUS (double, 128)
+DEF_REDUC_PLUS (double, 256)
+DEF_REDUC_PLUS (double, 512)
+
+/* { dg-final { scan-assembler-times {vfredusum\.vs} 8 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-8.c
new file mode 100644
index 0000000..cf4f9cc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-8.c
@@ -0,0 +1,58 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (int8_t, max, >, 4)
+DEF_REDUC_MAXMIN (int8_t, max, >, 8)
+DEF_REDUC_MAXMIN (int8_t, max, >, 16)
+DEF_REDUC_MAXMIN (int8_t, max, >, 32)
+DEF_REDUC_MAXMIN (int8_t, max, >, 64)
+DEF_REDUC_MAXMIN (int8_t, max, >, 128)
+DEF_REDUC_MAXMIN (int8_t, max, >, 256)
+DEF_REDUC_MAXMIN (int8_t, max, >, 512)
+DEF_REDUC_MAXMIN (int8_t, max, >, 1024)
+DEF_REDUC_MAXMIN (int8_t, max, >, 2048)
+DEF_REDUC_MAXMIN (int8_t, max, >, 4096)
+
+DEF_REDUC_MAXMIN (uint8_t, max, >, 4)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 8)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 16)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 32)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 64)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 128)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 256)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 512)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 1024)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 2048)
+DEF_REDUC_MAXMIN (uint8_t, max, >, 4096)
+
+DEF_REDUC_MAXMIN (int8_t, min, <, 4)
+DEF_REDUC_MAXMIN (int8_t, min, <, 8)
+DEF_REDUC_MAXMIN (int8_t, min, <, 16)
+DEF_REDUC_MAXMIN (int8_t, min, <, 32)
+DEF_REDUC_MAXMIN (int8_t, min, <, 64)
+DEF_REDUC_MAXMIN (int8_t, min, <, 128)
+DEF_REDUC_MAXMIN (int8_t, min, <, 256)
+DEF_REDUC_MAXMIN (int8_t, min, <, 512)
+DEF_REDUC_MAXMIN (int8_t, min, <, 1024)
+DEF_REDUC_MAXMIN (int8_t, min, <, 2048)
+DEF_REDUC_MAXMIN (int8_t, min, <, 4096)
+
+DEF_REDUC_MAXMIN (uint8_t, min, <, 4)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 8)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 16)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 32)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 64)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 128)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 256)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 512)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 1024)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 2048)
+DEF_REDUC_MAXMIN (uint8_t, min, <, 4096)
+
+/* { dg-final { scan-assembler-times {vredmax\.vs} 11 } } */
+/* { dg-final { scan-assembler-times {vredmaxu\.vs} 11 } } */
+/* { dg-final { scan-assembler-times {vredmin\.vs} 11 } } */
+/* { dg-final { scan-assembler-times {vredminu\.vs} 11 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-9.c
new file mode 100644
index 0000000..6416458
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/reduc-9.c
@@ -0,0 +1,54 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REDUC_MAXMIN (int16_t, max, >, 4)
+DEF_REDUC_MAXMIN (int16_t, max, >, 8)
+DEF_REDUC_MAXMIN (int16_t, max, >, 16)
+DEF_REDUC_MAXMIN (int16_t, max, >, 32)
+DEF_REDUC_MAXMIN (int16_t, max, >, 64)
+DEF_REDUC_MAXMIN (int16_t, max, >, 128)
+DEF_REDUC_MAXMIN (int16_t, max, >, 256)
+DEF_REDUC_MAXMIN (int16_t, max, >, 512)
+DEF_REDUC_MAXMIN (int16_t, max, >, 1024)
+DEF_REDUC_MAXMIN (int16_t, max, >, 2048)
+
+DEF_REDUC_MAXMIN (uint16_t, max, >, 4)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 8)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 16)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 32)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 64)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 128)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 256)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 512)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 1024)
+DEF_REDUC_MAXMIN (uint16_t, max, >, 2048)
+
+DEF_REDUC_MAXMIN (int16_t, min, <, 4)
+DEF_REDUC_MAXMIN (int16_t, min, <, 8)
+DEF_REDUC_MAXMIN (int16_t, min, <, 16)
+DEF_REDUC_MAXMIN (int16_t, min, <, 32)
+DEF_REDUC_MAXMIN (int16_t, min, <, 64)
+DEF_REDUC_MAXMIN (int16_t, min, <, 128)
+DEF_REDUC_MAXMIN (int16_t, min, <, 256)
+DEF_REDUC_MAXMIN (int16_t, min, <, 512)
+DEF_REDUC_MAXMIN (int16_t, min, <, 1024)
+DEF_REDUC_MAXMIN (int16_t, min, <, 2048)
+
+DEF_REDUC_MAXMIN (uint16_t, min, <, 4)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 8)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 16)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 32)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 64)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 128)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 256)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 512)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 1024)
+DEF_REDUC_MAXMIN (uint16_t, min, <, 2048)
+
+/* { dg-final { scan-assembler-times {vredmax\.vs} 10 } } */
+/* { dg-final { scan-assembler-times {vredmaxu\.vs} 10 } } */
+/* { dg-final { scan-assembler-times {vredmin\.vs} 10 } } */
+/* { dg-final { scan-assembler-times {vredminu\.vs} 10 } } */
+/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c
new file mode 100644
index 0000000..2c831f9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-1.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4qi, int8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8qi, int8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16qi, int8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32qi, int8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64qi, int8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128qi, int8_t, 128, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256qi, int8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512qi, int8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024qi, int8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (
+ v2048qi, int8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v4096qi, int8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c
new file mode 100644
index 0000000..a465bb6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-2.c
@@ -0,0 +1,654 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uqi, uint8_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uqi, uint8_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uqi, uint8_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uqi, uint8_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64uqi, uint8_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128uqi, uint8_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256uqi, uint8_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512uqi, uint8_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024uqi, uint8_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (
+ v2048uqi, uint8_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v4096uqi, uint8_t, 4096, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 11 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c
new file mode 100644
index 0000000..9c9899b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-3.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hi, int16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hi, int16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hi, int16_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hi, int16_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64hi, int16_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128hi, int16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256hi, int16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512hi, int16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024hi, int16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (
+ v2048hi, int16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c
new file mode 100644
index 0000000..17bc313
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-4.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4uhi, uint16_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8uhi, uint16_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16uhi, uint16_t, 16, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32uhi, uint16_t, 32, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1)
+DEF_REPEAT (v64uhi, uint16_t, 64, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v128uhi, uint16_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256uhi, uint16_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512uhi, uint16_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024uhi, uint16_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (
+ v2048uhi, uint16_t, 2048, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c
new file mode 100644
index 0000000..6398f24
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-5.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4si, int32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8si, int32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16si, int32_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32si, int32_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64si, int32_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128si, int32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256si, int32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512si, int32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024si, int32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c
new file mode 100644
index 0000000..960a164
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-6.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4usi, uint32_t, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8usi, uint32_t, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16usi, uint32_t, 16, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32usi, uint32_t, 32, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1)
+DEF_REPEAT (v64usi, uint32_t, 64, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v128usi, uint32_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256usi, uint32_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512usi, uint32_t, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024usi, uint32_t, 1024, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vslide1down\.vx} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c
new file mode 100644
index 0000000..98be878
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-7.c
@@ -0,0 +1,53 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v16di, int64_t, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32di, int64_t, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64di, int64_t, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128di, int64_t, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256di, int64_t, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmerge\.vxm} 5 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c
new file mode 100644
index 0000000..b8d952e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-8.c
@@ -0,0 +1,337 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4hf, _Float16, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8hf, _Float16, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16hf, _Float16, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32hf, _Float16, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64hf, _Float16, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128hf, _Float16, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256hf, _Float16, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512hf, _Float16, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024hf, _Float16, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (
+ v2048hf, _Float16, 2048, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 10 } } */
+/* { dg-final { scan-assembler-not {vfslide1down\.vf} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c
new file mode 100644
index 0000000..1db68fc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/repeat-9.c
@@ -0,0 +1,178 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh_zvl4096b -mabi=lp64d -O3 --param=riscv-autovec-lmul=m8" } */
+
+#include "def.h"
+
+DEF_REPEAT (v4sf, float, 4, var0, var1, var0, var1)
+DEF_REPEAT (v8sf, float, 8, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v16sf, float, 16, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (v32sf, float, 32, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1)
+DEF_REPEAT (v64sf, float, 64, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+DEF_REPEAT (v128sf, float, 128, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v256sf, float, 256, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v512sf, float, 512, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1)
+DEF_REPEAT (
+ v1024sf, float, 1024, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1,
+ var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0, var1, var0,
+ var1)
+
+/* { dg-final { scan-assembler-times {vmv\.v\.x} 9 } } */
+/* { dg-final { scan-assembler-not {vfslide1down\.vf} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c
index b34a349..db2295b 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/shift-3.c
@@ -54,5 +54,4 @@ DEF_OP_VV (shift, 256, int64_t, <<)
DEF_OP_VV (shift, 512, int64_t, <<)
/* { dg-final { scan-assembler-times {vsll\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 41 } } */
-/* TODO: Ideally, we should make sure there is no "csrr vlenb". However, we still have 'csrr vlenb' for some cases since we don't support VLS mode conversion which are needed by division. */
/* { dg-final { scan-assembler-not {csrr} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c
new file mode 100644
index 0000000..8075646
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc-1.c
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvfh_zvl128b -mabi=lp64d --param riscv-autovec-preference=fixed-vlmax --param riscv-autovec-lmul=m2 -fno-vect-cost-model -ffast-math" } */
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2, N) \
+ __attribute__((noipa)) TYPE1 reduc_##TYPE1##_##TYPE2(TYPE2 *restrict a) { \
+ TYPE1 sum = 0; \
+ for (int i = 0; i < N; i += 1) \
+ sum += a[i]; \
+ return sum; \
+ }
+
+#define TEST_ALL(TEST) \
+ TEST(int16_t, int8_t, 16) \
+ TEST(int32_t, int16_t, 8) \
+ TEST(int64_t, int32_t, 4) \
+ TEST(uint16_t, uint8_t, 16) \
+ TEST(uint32_t, uint16_t, 8) \
+ TEST(uint64_t, uint32_t, 4) \
+ TEST(float, _Float16, 8) \
+ TEST(double, float, 4)
+
+TEST_ALL(TEST_TYPE)
+
+/* { dg-final { scan-assembler-times {\tvfwredusum\.vs} 2 } } */
+/* { dg-final { scan-assembler-times {\tvwredsum\.vs} 3 } } */
+/* { dg-final { scan-assembler-times {\tvwredsumu\.vs} 3 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c
new file mode 100644
index 0000000..7ae5080
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-1.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvfh -mabi=lp64d --param riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2) \
+ __attribute__((noipa)) \
+ TYPE1 reduc_##TYPE1##_##TYPE2(TYPE2 *restrict a, int n) { \
+ TYPE1 sum = 0; \
+ for (int i = 0; i < n; i += 1) \
+ sum += a[i]; \
+ return sum; \
+ }
+
+#define TEST_ALL(TEST) \
+ TEST(float, _Float16) \
+ TEST(double, float)
+
+TEST_ALL(TEST_TYPE)
+
+/* { dg-final { scan-assembler-times {\tvfwredosum\.vs} 2 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c
new file mode 100644
index 0000000..a922aa7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order-2.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-march=rv64gcv_zvfh -mabi=lp64d --param riscv-autovec-preference=scalable --param riscv-autovec-lmul=m2 -fno-vect-cost-model" } */
+#include <stdint-gcc.h>
+
+#define TEST_TYPE(TYPE1, TYPE2, N) \
+ __attribute__((noipa)) TYPE1 reduc_##TYPE1##_##TYPE2(TYPE2 *restrict a) { \
+ TYPE1 sum = 0; \
+ for (int i = 0; i < N; i += 1) \
+ sum += a[i]; \
+ return sum; \
+ }
+
+#define TEST_ALL(TEST) \
+ TEST(float, _Float16, 8) \
+ TEST(double, float, 4)
+
+TEST_ALL(TEST_TYPE)
+
+/* { dg-final { scan-assembler-times {\tvfwredosum\.vs} 2 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c
new file mode 100644
index 0000000..d4ba4f5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-1.c
@@ -0,0 +1,24 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "widen_reduc_order-1.c"
+
+#define N 99
+
+#define RUN(TYPE1, TYPE2) \
+ { \
+ TYPE2 a[N]; \
+ TYPE1 r = 0; \
+ for (int i = 0; i < N; i++) { \
+ a[i] = (i * 0.1) * (i & 1 ? 1 : -1); \
+ r += a[i]; \
+ asm volatile("" ::: "memory"); \
+ } \
+ if (r != reduc_##TYPE1##_##TYPE2(a, N)) \
+ __builtin_abort(); \
+ }
+
+int __attribute__((optimize(1))) main() {
+ TEST_ALL(RUN)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c
new file mode 100644
index 0000000..6ac6762
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_order_run-2.c
@@ -0,0 +1,22 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "widen_reduc_order-2.c"
+
+#define RUN(TYPE1, TYPE2, N) \
+ { \
+ TYPE2 a[N]; \
+ TYPE1 r = 0; \
+ for (int i = 0; i < N; i++) { \
+ a[i] = (i * 0.1) * (i & 1 ? 1 : -1); \
+ r += a[i]; \
+ asm volatile("" ::: "memory"); \
+ } \
+ if (r != reduc_##TYPE1##_##TYPE2(a)) \
+ __builtin_abort(); \
+ }
+
+int __attribute__((optimize(1))) main() {
+ TEST_ALL(RUN)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c
new file mode 100644
index 0000000..d70a652
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/widen/widen_reduc_run-1.c
@@ -0,0 +1,22 @@
+/* { dg-do run { target { riscv_vector } } } */
+/* { dg-additional-options "--param=riscv-autovec-preference=scalable -fno-vect-cost-model" } */
+
+#include "widen_reduc-1.c"
+
+#define RUN(TYPE1, TYPE2, N) \
+ { \
+ TYPE2 a[N]; \
+ TYPE1 r = 0; \
+ for (int i = 0; i < N; i++) { \
+ a[i] = (i * 0.1) * (i & 1 ? 1 : -1); \
+ r += a[i]; \
+ asm volatile("" ::: "memory"); \
+ } \
+ if (r != reduc_##TYPE1##_##TYPE2(a)) \
+ __builtin_abort(); \
+ }
+
+int __attribute__((optimize(1))) main() {
+ TEST_ALL(RUN)
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/no-honor-frm-1.c b/gcc/testsuite/gcc.target/riscv/rvv/base/no-honor-frm-1.c
new file mode 100644
index 0000000..b2e0f21
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/no-honor-frm-1.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64 -O3 -Wno-psabi" } */
+
+void foo (void) {
+ for (unsigned i = 0; i < sizeof(foo); i++)
+ __builtin_printf("%d", i);
+}
+
+/* { dg-final { scan-assembler-not {fsrmi\s+[axs][0-9]+,\s*[01234]} } } */
+/* { dg-final { scan-assembler-not {fsrmi\s+[01234]} } } */
+/* { dg-final { scan-assembler-not {fsrm\s+[axs][0-9]+} } } */
+/* { dg-final { scan-assembler-not {frrm\s+[axs][0-9]+} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/tuple_create.c b/gcc/testsuite/gcc.target/riscv/rvv/base/tuple_create.c
new file mode 100644
index 0000000..b252b2f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/base/tuple_create.c
@@ -0,0 +1,123 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvfh -mabi=lp64 -O3 -Wno-psabi" } */
+
+#include "riscv_vector.h"
+
+vfloat16mf4x2_t test_vcreate_v_f16mf4x2(vfloat16mf4_t v0, vfloat16mf4_t v1) {
+ return __riscv_vcreate_v_f16mf4x2(v0, v1);
+}
+
+vfloat16mf4x3_t test_vcreate_v_f16mf4x3(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2) {
+ return __riscv_vcreate_v_f16mf4x3(v0, v1, v2);
+}
+
+vfloat16mf4x4_t test_vcreate_v_f16mf4x4(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2, vfloat16mf4_t v3) {
+ return __riscv_vcreate_v_f16mf4x4(v0, v1, v2, v3);
+}
+
+vfloat16mf4x5_t test_vcreate_v_f16mf4x5(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2, vfloat16mf4_t v3, vfloat16mf4_t v4) {
+ return __riscv_vcreate_v_f16mf4x5(v0, v1, v2, v3, v4);
+}
+
+vfloat16mf4x6_t test_vcreate_v_f16mf4x6(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2, vfloat16mf4_t v3, vfloat16mf4_t v4, vfloat16mf4_t v5) {
+ return __riscv_vcreate_v_f16mf4x6(v0, v1, v2, v3, v4, v5);
+}
+
+vfloat16mf4x7_t test_vcreate_v_f16mf4x7(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2, vfloat16mf4_t v3, vfloat16mf4_t v4, vfloat16mf4_t v5, vfloat16mf4_t v6) {
+ return __riscv_vcreate_v_f16mf4x7(v0, v1, v2, v3, v4, v5, v6);
+}
+
+vfloat16mf4x8_t test_vcreate_v_f16mf4x8(vfloat16mf4_t v0, vfloat16mf4_t v1, vfloat16mf4_t v2, vfloat16mf4_t v3, vfloat16mf4_t v4, vfloat16mf4_t v5, vfloat16mf4_t v6, vfloat16mf4_t v7) {
+ return __riscv_vcreate_v_f16mf4x8(v0, v1, v2, v3, v4, v5, v6, v7);
+}
+
+vfloat32m1x2_t test_vcreate_v_f32m1x2(vfloat32m1_t v0, vfloat32m1_t v1) {
+ return __riscv_vcreate_v_f32m1x2(v0, v1);
+}
+
+vfloat32m1x3_t test_vcreate_v_f32m1x3(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2) {
+ return __riscv_vcreate_v_f32m1x3(v0, v1, v2);
+}
+
+vfloat32m1x4_t test_vcreate_v_f32m1x4(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2, vfloat32m1_t v3) {
+ return __riscv_vcreate_v_f32m1x4(v0, v1, v2, v3);
+}
+
+vfloat32m1x5_t test_vcreate_v_f32m1x5(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2, vfloat32m1_t v3, vfloat32m1_t v4) {
+ return __riscv_vcreate_v_f32m1x5(v0, v1, v2, v3, v4);
+}
+
+vfloat32m1x6_t test_vcreate_v_f32m1x6(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2, vfloat32m1_t v3, vfloat32m1_t v4, vfloat32m1_t v5) {
+ return __riscv_vcreate_v_f32m1x6(v0, v1, v2, v3, v4, v5);
+}
+
+vfloat32m1x7_t test_vcreate_v_f32m1x7(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2, vfloat32m1_t v3, vfloat32m1_t v4, vfloat32m1_t v5, vfloat32m1_t v6) {
+ return __riscv_vcreate_v_f32m1x7(v0, v1, v2, v3, v4, v5, v6);
+}
+
+vfloat32m1x8_t test_vcreate_v_f32m1x8(vfloat32m1_t v0, vfloat32m1_t v1, vfloat32m1_t v2, vfloat32m1_t v3, vfloat32m1_t v4, vfloat32m1_t v5, vfloat32m1_t v6, vfloat32m1_t v7) {
+ return __riscv_vcreate_v_f32m1x8(v0, v1, v2, v3, v4, v5, v6, v7);
+}
+
+vfloat64m2x2_t test_vcreate_v_f64m2x2(vfloat64m2_t v0, vfloat64m2_t v1) {
+ return __riscv_vcreate_v_f64m2x2(v0, v1);
+}
+
+vfloat64m2x3_t test_vcreate_v_f64m2x3(vfloat64m2_t v0, vfloat64m2_t v1, vfloat64m2_t v2) {
+ return __riscv_vcreate_v_f64m2x3(v0, v1, v2);
+}
+
+vfloat64m2x4_t test_vcreate_v_f64m2x4(vfloat64m2_t v0, vfloat64m2_t v1, vfloat64m2_t v2, vfloat64m2_t v3) {
+ return __riscv_vcreate_v_f64m2x4(v0, v1, v2, v3);
+}
+
+vfloat64m4x2_t test_vcreate_v_f64m4x2(vfloat64m4_t v0, vfloat64m4_t v1) {
+ return __riscv_vcreate_v_f64m4x2(v0, v1);
+}
+
+vint8m2x2_t test_vcreate_v_i8m2x2(vint8m2_t v0, vint8m2_t v1) {
+ return __riscv_vcreate_v_i8m2x2(v0, v1);
+}
+
+vint8m2x3_t test_vcreate_v_i8m2x3(vint8m2_t v0, vint8m2_t v1, vint8m2_t v2) {
+ return __riscv_vcreate_v_i8m2x3(v0, v1, v2);
+}
+
+vint8m2x4_t test_vcreate_v_i8m2x4(vint8m2_t v0, vint8m2_t v1, vint8m2_t v2, vint8m2_t v3) {
+ return __riscv_vcreate_v_i8m2x4(v0, v1, v2, v3);
+}
+
+vint8m4x2_t test_vcreate_v_i8m4x2(vint8m4_t v0, vint8m4_t v1) {
+ return __riscv_vcreate_v_i8m4x2(v0, v1);
+}
+
+vint16m4x2_t test_vcreate_v_i16m4x2(vint16m4_t v0, vint16m4_t v1) {
+ return __riscv_vcreate_v_i16m4x2(v0, v1);
+}
+
+vint32m4x2_t test_vcreate_v_i32m4x2(vint32m4_t v0, vint32m4_t v1) {
+ return __riscv_vcreate_v_i32m4x2(v0, v1);
+}
+
+vint64m2x2_t test_vcreate_v_i64m2x2(vint64m2_t v0, vint64m2_t v1) {
+ return __riscv_vcreate_v_i64m2x2(v0, v1);
+}
+
+vint64m2x3_t test_vcreate_v_i64m2x3(vint64m2_t v0, vint64m2_t v1, vint64m2_t v2) {
+ return __riscv_vcreate_v_i64m2x3(v0, v1, v2);
+}
+
+vint64m2x4_t test_vcreate_v_i64m2x4(vint64m2_t v0, vint64m2_t v1, vint64m2_t v2, vint64m2_t v3) {
+ return __riscv_vcreate_v_i64m2x4(v0, v1, v2, v3);
+}
+
+/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 7 } } */
+/* { dg-final { scan-assembler-times {vle16\.v\s+v[0-9]+,\s*0\([0-9ax]+\)} 35 } } */
+/* { dg-final { scan-assembler-times {vse16\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 35 } } */
+/* { dg-final { scan-assembler-times {vl2re8\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 9 } } */
+/* { dg-final { scan-assembler-times {vl1re32\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 35 } } */
+/* { dg-final { scan-assembler-times {vl2re64\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 18 } } */
+/* { dg-final { scan-assembler-times {vl4re64\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 2 } } */
+/* { dg-final { scan-assembler-times {vs1r\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 35 } } */
+/* { dg-final { scan-assembler-times {vs2r\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 27 } } */
+/* { dg-final { scan-assembler-times {vs4r\.v\s+v[0-9]+,\s*0\([a-x][0-9]+\)} 8 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/base/vector-abi-9.c b/gcc/testsuite/gcc.target/riscv/rvv/base/vector-abi-9.c
deleted file mode 100644
index b5f130f..0000000
--- a/gcc/testsuite/gcc.target/riscv/rvv/base/vector-abi-9.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-march=rv64gcv -mabi=lp64d --param=riscv-autovec-preference=fixed-vlmax" } */
-
-#include "riscv_vector.h"
-
-typedef int v4si __attribute__ ((vector_size (16)));
-
-v4si
-fun (v4si a) { return a; } /* { dg-warning "the vector type" } */
-
-void
-bar ()
-{
- v4si a;
- fun (a);
-}
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f90 b/gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f90
new file mode 100644
index 0000000..71253fe
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/fortran/pr111395.f90
@@ -0,0 +1,41 @@
+! { dg-do compile }
+! { dg-options "-march=rv64gcv -mabi=lp64d -Ofast -std=legacy" }
+
+MODULE a
+ REAL b
+CONTAINS
+ SUBROUTINE c(d,KTE)
+ REAL,DIMENSION(KTE) :: d,e,f,g
+ REAL,DIMENSION(KTE) :: h
+ i : DO j=1,b
+ z=k
+ DO l=m,n
+ IF(o>=p)THEN
+ IF(l<L0)THEN
+ q=z/0
+ ENDIF
+ e=q
+ f=EXP(r )
+ ENDIF
+ ENDDO
+ s : DO t=1,2
+ DO l=m,u
+ v=v+l
+ ENDDO
+ IF(w<=x)THEN
+ DO l=w,x
+ g=y
+ ENDDO
+ ENDIF
+ ENDDO s
+ aa=v
+ ab=ac/aa
+ k=ad/ab
+ ENDDO i
+ IF(ae>af)THEN
+ DO l=m,n
+ d=h
+ ENDDO
+ ENDIF
+ END SUBROUTINE c
+END MODULE a
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp b/gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp
new file mode 100644
index 0000000..88d8228
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/rvv-fortran.exp
@@ -0,0 +1,45 @@
+# Copyright (C) 2023-2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# GCC testsuite that uses the `dg.exp' driver.
+
+# Exit immediately if this isn't a RISC-V target.
+if { ![istarget riscv*-*-*] } then {
+ return
+}
+
+# Make sure there is a fortran compiler to test.
+if { ![check_no_compiler_messages fortran_available assembly {
+! Fortran
+program P
+ stop
+end program P
+} ""] } {
+ return
+}
+
+# Load support procs.
+load_lib gfortran-dg.exp
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+gfortran-dg-runtest [lsort \
+ [glob -nocomplain $srcdir/$subdir/fortran/*.\[fF\]{,90,95,03,08} ] ] "" ""
+
+# All done.
+dg-finish
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
index d8f114c..d949933 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-21.c
@@ -29,4 +29,4 @@ void f (int8_t * restrict in, int8_t * restrict out, int n, int m, int cond)
}
/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*mu} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 2 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 3 { target { no-opts "-O0" no-opts "-Os" no-opts "-O1" no-opts "-g" no-opts "-funroll-loops" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
index 13eee21..a7e067e 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-26.c
@@ -32,4 +32,4 @@ void f (int8_t * restrict in, int8_t * restrict out, int n, int m, int cond)
}
/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e32,\s*mf2,\s*tu,\s*mu} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 2 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 3 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-g" no-opts "-funroll-loops" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
index 06f57dc..20e0e4d 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-39.c
@@ -16,4 +16,4 @@ void f (int8_t *base, int8_t *out, size_t m, size_t n) {
}
/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-g" no-opts "-funroll-loops" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-O1" no-opts "-g" no-opts "-funroll-loops" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
index 29ce79a..5b79594 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-41.c
@@ -16,4 +16,4 @@ void f (int8_t *base, int8_t *out, size_t m, size_t n) {
}
/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*tu,\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 2 { target { no-opts "-O0" no-opts "-Os" no-opts "-O1" no-opts "-g" no-opts "-funroll-loops" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c
index 3d3d718..1ed0355 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/avl_single-6.c
@@ -17,6 +17,6 @@ void f (void * restrict in, void * restrict out, int l, int n, int m, size_t vl)
}
}
-/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
-/* { dg-final { scan-assembler-times {add\s+\s*[a-x0-9]+,\s*[a-x0-9]+,\s*[a-x0-9]+\s+ble\s+[a-x0-9]+,\s*zero,\.L[0-9]+\s+vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-g" no-opts "-funroll-loops" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*[a-x0-9]+,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-flto" no-opts "-Os" no-opts "-Oz" no-opts "-g" no-opts "-funroll-loops" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c
new file mode 100644
index 0000000..736f683
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/pr111255.c
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 --param riscv-autovec-lmul=m2 -fno-vect-cost-model" } */
+
+#include <stdint.h>
+
+#define DEF_LOOP(OLD_TYPE, NEW_TYPE) \
+ void __attribute__ ((noipa)) \
+ test_##OLD_TYPE##_2_##NEW_TYPE (NEW_TYPE *__restrict r, \
+ OLD_TYPE *__restrict a, NEW_TYPE b, \
+ OLD_TYPE *__restrict pred, int n) \
+ { \
+ for (int i = 0; i < n; ++i) \
+ { \
+ r[i] = pred[i] ? (NEW_TYPE) a[i] : b; \
+ } \
+ }
+
+/* INT -> narrower-INT */
+#define TEST_ALL_X2X_NARROWER(T) \
+ T (int16_t, int8_t)
+
+TEST_ALL_X2X_NARROWER (DEF_LOOP)
+
+/* { dg-final { scan-assembler-not {\tvsetvli\t[a-x0-9]+,[a-x0-9]+,e[0-9]+,m[f0-9]+,t[au],m[au]\n\tvsetvli\t} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
index fb20a54..d1611dd 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-12.c
@@ -35,5 +35,5 @@ void f2 (int32_t * restrict in, int32_t * restrict in2, int32_t * restrict out,
}
}
-/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 4 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
index a5ffd27..3e89cfc 100644
--- a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vlmax_conflict-3.c
@@ -26,5 +26,5 @@ void f2 (int32_t * restrict in, int32_t * restrict in2, int32_t * restrict out,
}
}
-/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
-/* { dg-final { scan-assembler-times {vsetvli} 1 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e8,\s*mf8,\s*t[au],\s*m[au]} 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
+/* { dg-final { scan-assembler-times {vsetvli} 4 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-Oz" no-opts "-funroll-loops" no-opts "-g" } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
new file mode 100644
index 0000000..6b7c773
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/wredsum_vlmax.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv_zvl256b --param=riscv-autovec-preference=fixed-vlmax -O3" } */
+
+
+#include <stdint.h>
+
+int16_t foo (int8_t *restrict a)
+{
+ int16_t sum = 0;
+ for (int i = 0; i < 8; i += 1)
+ sum += a[i];
+ return sum;
+}
+
+/* { dg-final { scan-assembler-not {\tvsetivli\tzero,16} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c b/gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c
new file mode 100644
index 0000000..6b88912
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/xtheadbb-strcmp.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv32gc_xtheadbb" { target { rv32 } } } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv64gc_xtheadbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+/* Emits 8+1 th.tstnbz instructions. */
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strcmp (s1, s2);
+}
+
+/* 8+1 because the backend does not know the size of "foo". */
+
+int
+my_str_cmp_const (const char *s1)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strcmp (s1, "foo");
+}
+
+/* Emits 6+1 th.tstnbz instructions. */
+
+int
+my_strn_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* Note expanded because the backend does not know the size of "foo". */
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+/* Emits 6+1 th.tstnbz instructions. */
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-times "th.tstnbz\t" 32 { target { rv64 } } } } */
+/* { dg-final { scan-assembler-times "th.tstnbz\t" 58 { target { rv32 } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c b/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c
new file mode 100644
index 0000000..57a6b5e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen-unaligned.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strlen -march=rv32gc_xtheadbb" { target { rv32 } } } */
+/* { dg-options "-minline-strlen -march=rv64gc_xtheadbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler-not "th.tstnbz\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c b/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c
new file mode 100644
index 0000000..dbc8d1e
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/xtheadbb-strlen.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strlen -march=rv32gc_xtheadbb" { target { rv32 } } } */
+/* { dg-options "-minline-strlen -march=rv64gc_xtheadbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ s = __builtin_assume_aligned (s, 4096);
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler "th.tstnbz\t" } } */
+/* { dg-final { scan-assembler-not "jalr" } } */
+/* { dg-final { scan-assembler-not "call" } } */
+/* { dg-final { scan-assembler-not "jr" } } */
+/* { dg-final { scan-assembler-not "tail" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c
new file mode 100644
index 0000000..f0b3cd5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled-2.c
@@ -0,0 +1,38 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ return __builtin_strcmp (s1, s2);
+}
+
+int
+my_str_cmp_const (const char *s1)
+{
+ return __builtin_strcmp (s1, "foo");
+}
+
+int
+my_strn_cmp (const char *s1, const char *s2, size_t n)
+{
+ return __builtin_strncmp (s1, s2, n);
+}
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c
new file mode 100644
index 0000000..68497d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-disabled.c
@@ -0,0 +1,38 @@
+/* { dg-do compile } */
+/* { dg-options "-mno-inline-strcmp -mno-inline-strncmp -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-mno-inline-strcmp -mno-inline-strncmp -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ return __builtin_strcmp (s1, s2);
+}
+
+int
+my_str_cmp_const (const char *s1)
+{
+ return __builtin_strcmp (s1, "foo");
+}
+
+int
+my_strn_cmp (const char *s1, const char *s2, size_t n)
+{
+ return __builtin_strncmp (s1, s2, n);
+}
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c
new file mode 100644
index 0000000..6bcbd70
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-limit.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strcmp -minline-strncmp --param=riscv-strcmp-inline-limit=32 -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-minline-strcmp -minline-strncmp --param=riscv-strcmp-inline-limit=32 -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+/* Emits 8+1 orc.b instructions. */
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strcmp (s1, s2);
+}
+
+/* 8+1 because the backend does not know the size of "foo". */
+
+int
+my_str_cmp_const (const char *s1)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strcmp (s1, "foo");
+}
+
+/* Emits 6+1 orc.b instructions. */
+
+int
+my_strn_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* Note expanded because the backend does not know the size of "foo". */
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+/* Emits 6+1 orc.b instructions. */
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-times "orc.b\t" 10 { target { rv64 } } } } */
+/* { dg-final { scan-assembler-times "orc.b\t" 18 { target { rv32 } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c
new file mode 100644
index 0000000..1911876
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strcmp-unaligned.c
@@ -0,0 +1,38 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ return __builtin_strcmp (s1, s2);
+}
+
+int
+my_str_cmp_const (const char *s1)
+{
+ return __builtin_strcmp (s1, "foo");
+}
+
+int
+my_strn_cmp (const char *s1, const char *s2, size_t n)
+{
+ return __builtin_strncmp (s1, s2, n);
+}
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strcmp.c b/gcc/testsuite/gcc.target/riscv/zbb-strcmp.c
new file mode 100644
index 0000000..f64aa34
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strcmp.c
@@ -0,0 +1,57 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-minline-strcmp -minline-strncmp -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+/* Emits 8+1 orc.b instructions. */
+
+int
+my_str_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strcmp (s1, s2);
+}
+
+/* 8+1 because the backend does not know the size of "foo". */
+
+int
+my_str_cmp_const (const char *s1)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strcmp (s1, "foo");
+}
+
+/* Emits 6+1 orc.b instructions. */
+
+int
+my_strn_cmp (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* Note expanded because the backend does not know the size of "foo". */
+
+int
+my_strn_cmp_const (const char *s1, size_t n)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ return __builtin_strncmp (s1, "foo", n);
+}
+
+/* Emits 6+1 orc.b instructions. */
+
+int
+my_strn_cmp_bounded (const char *s1, const char *s2)
+{
+ s1 = __builtin_assume_aligned (s1, 4096);
+ s2 = __builtin_assume_aligned (s2, 4096);
+ return __builtin_strncmp (s1, s2, 42);
+}
+
+/* { dg-final { scan-assembler-times "orc.b\t" 32 { target { rv64 } } } } */
+/* { dg-final { scan-assembler-times "orc.b\t" 58 { target { rv32 } } } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c
new file mode 100644
index 0000000..a481068
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled-2.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ s = __builtin_assume_aligned (s, 4096);
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c
new file mode 100644
index 0000000..1295aeb
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strlen-disabled.c
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-mno-inline-strlen -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-mno-inline-strlen -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ s = __builtin_assume_aligned (s, 4096);
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c b/gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c
new file mode 100644
index 0000000..326fef8
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strlen-unaligned.c
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strlen -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-minline-strlen -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler-not "orc.b\t" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbb-strlen.c b/gcc/testsuite/gcc.target/riscv/zbb-strlen.c
new file mode 100644
index 0000000..19ebfae
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zbb-strlen.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-minline-strlen -march=rv32gc_zbb" { target { rv32 } } } */
+/* { dg-options "-minline-strlen -march=rv64gc_zbb" { target { rv64 } } } */
+/* { dg-skip-if "" { *-*-* } { "-O0" "-Os" "-Og" "-Oz" } } */
+
+typedef long unsigned int size_t;
+
+size_t
+my_str_len (const char *s)
+{
+ s = __builtin_assume_aligned (s, 4096);
+ return __builtin_strlen (s);
+}
+
+/* { dg-final { scan-assembler "orc.b\t" } } */
+/* { dg-final { scan-assembler-not "jalr" } } */
+/* { dg-final { scan-assembler-not "call" } } */
+/* { dg-final { scan-assembler-not "jr" } } */
+/* { dg-final { scan-assembler-not "tail" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zbc32.c b/gcc/testsuite/gcc.target/riscv/zbc32.c
index 08705c4..f3fb223 100644
--- a/gcc/testsuite/gcc.target/riscv/zbc32.c
+++ b/gcc/testsuite/gcc.target/riscv/zbc32.c
@@ -3,17 +3,17 @@
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2)
+uint32_t foo1(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_clmul(rs1, rs2);
}
-int32_t foo2(int32_t rs1, int32_t rs2)
+uint32_t foo2(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_clmulh(rs1, rs2);
}
-int32_t foo3(int32_t rs1, int32_t rs2)
+uint32_t foo3(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_clmulr(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbc64.c b/gcc/testsuite/gcc.target/riscv/zbc64.c
index a19f42b..841a0aa 100644
--- a/gcc/testsuite/gcc.target/riscv/zbc64.c
+++ b/gcc/testsuite/gcc.target/riscv/zbc64.c
@@ -3,17 +3,17 @@
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2)
+uint64_t foo1(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_clmul(rs1, rs2);
}
-int64_t foo2(int64_t rs1, int64_t rs2)
+uint64_t foo2(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_clmulh(rs1, rs2);
}
-int64_t foo3(int64_t rs1, int64_t rs2)
+uint64_t foo3(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_clmulr(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkb32.c b/gcc/testsuite/gcc.target/riscv/zbkb32.c
index dd45b8b..b2e442d 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkb32.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkb32.c
@@ -4,27 +4,27 @@
#include <stdint-gcc.h>
-int32_t foo1(int16_t rs1, int16_t rs2)
+uint32_t foo1(uint16_t rs1, uint16_t rs2)
{
return __builtin_riscv_pack(rs1, rs2);
}
-int32_t foo2(int8_t rs1, int8_t rs2)
+uint32_t foo2(uint8_t rs1, uint8_t rs2)
{
return __builtin_riscv_packh(rs1, rs2);
}
-int32_t foo3(int32_t rs1)
+uint32_t foo3(uint32_t rs1)
{
return __builtin_riscv_brev8(rs1);
}
-int32_t foo4(int32_t rs1)
+uint32_t foo4(uint32_t rs1)
{
return __builtin_riscv_zip(rs1);
}
-int32_t foo5(int32_t rs1)
+uint32_t foo5(uint32_t rs1)
{
return __builtin_riscv_unzip(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkb64.c b/gcc/testsuite/gcc.target/riscv/zbkb64.c
index 960a2ae..08ac9c2 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkb64.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkb64.c
@@ -3,22 +3,22 @@
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
#include <stdint-gcc.h>
-int64_t foo1(int32_t rs1, int32_t rs2)
+uint64_t foo1(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_pack(rs1, rs2);
}
-int64_t foo2(int8_t rs1, int8_t rs2)
+uint64_t foo2(uint8_t rs1, uint8_t rs2)
{
return __builtin_riscv_packh(rs1, rs2);
}
-int64_t foo3(int16_t rs1, int16_t rs2)
+uint64_t foo3(uint16_t rs1, uint16_t rs2)
{
return __builtin_riscv_packw(rs1, rs2);
}
-int64_t foo4(int64_t rs1, int64_t rs2)
+uint64_t foo4(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_brev8(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkc32.c b/gcc/testsuite/gcc.target/riscv/zbkc32.c
index a8e2920..29f0d62 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkc32.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkc32.c
@@ -3,12 +3,12 @@
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2)
+uint32_t foo1(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_clmul(rs1, rs2);
}
-int32_t foo2(int32_t rs1, int32_t rs2)
+uint32_t foo2(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_clmulh(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkc64.c b/gcc/testsuite/gcc.target/riscv/zbkc64.c
index 728f8ba..53e6ac2 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkc64.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkc64.c
@@ -3,12 +3,12 @@
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2)
+uint64_t foo1(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_clmul(rs1, rs2);
}
-int64_t foo2(int64_t rs1, int64_t rs2)
+uint64_t foo2(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_clmulh(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkx32.c b/gcc/testsuite/gcc.target/riscv/zbkx32.c
index bd95524..b8b822a 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkx32.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkx32.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int32_t foo3(int32_t rs1, int32_t rs2)
+uint32_t foo3(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_xperm8(rs1, rs2);
}
-int32_t foo4(int32_t rs1, int32_t rs2)
+uint32_t foo4(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_xperm4(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zbkx64.c b/gcc/testsuite/gcc.target/riscv/zbkx64.c
index 2a04a94..7324367 100644
--- a/gcc/testsuite/gcc.target/riscv/zbkx64.c
+++ b/gcc/testsuite/gcc.target/riscv/zbkx64.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2)
+uint64_t foo1(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_xperm8(rs1, rs2);
}
-int64_t foo2(int64_t rs1, int64_t rs2)
+uint64_t foo2(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_xperm4(rs1, rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c b/gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
index 530b35b..c9d7920 100644
--- a/gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
+++ b/gcc/testsuite/gcc.target/riscv/zcmp_push_fpr.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-march=rv64imafd_zicsr_zifencei_zca_zcmp -mabi=lp64d -Os -fno-shrink-wrap-separate" } */
+/* { dg-options "-march=rv64imafd_zicsr_zifencei_zca_zcmp -mabi=lp64d -Os" } */
/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-O2" "-Og" "-O3" "-Oz" "-flto"} } */
typedef struct
diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c b/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
new file mode 100644
index 0000000..035bc32
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate.c
@@ -0,0 +1,93 @@
+/* { dg-do compile } */
+/* { dg-options " -O2 -march=rv32imaf_zca_zcmp -mabi=ilp32f" } */
+/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-Os" "-Og" "-O3" "-Oz" "-flto"} } */
+
+typedef struct MAT_PARAMS_S
+{
+ int N;
+ signed short *A;
+ signed short *B;
+ signed int *C;
+} mat_params;
+
+typedef struct CORE_PORTABLE_S
+{
+ unsigned char portable_id;
+} core_portable;
+
+typedef struct RESULTS_S
+{
+ /* inputs */
+ signed short seed1; /* Initializing seed */
+ signed short seed2; /* Initializing seed */
+ signed short seed3; /* Initializing seed */
+ void *memblock[4]; /* Pointer to safe memory location */
+ unsigned int size; /* Size of the data */
+ unsigned int iterations; /* Number of iterations to execute */
+ unsigned int execs; /* Bitmask of operations to execute */
+ struct list_head_s *list;
+ mat_params mat;
+ /* outputs */
+ unsigned short crc;
+ unsigned short crclist;
+ unsigned short crcmatrix;
+ unsigned short crcstate;
+ signed short err;
+ /* ultithread specific */
+ core_portable port;
+} core_results;
+
+extern signed short
+core_bench_state (unsigned int, void *, signed short, signed short,
+ signed short, unsigned short);
+
+extern signed short
+core_bench_matrix (mat_params *, signed short, unsigned short);
+
+extern unsigned short
+crcu16 (signed short, unsigned short);
+
+signed short
+calc_func (signed short *pdata, core_results *res)
+{
+ signed short data = *pdata;
+ signed short retval;
+ unsigned char optype
+ = (data >> 7)
+ & 1; /* bit 7 indicates if the function result has been cached */
+ if (optype) /* if cached, use cache */
+ return (data & 0x007f);
+ else
+ { /* otherwise calculate and cache the result */
+ signed short flag
+ = data & 0x7; /* bits 0-2 is type of function to perform */
+ signed short dtype
+ = ((data >> 3) & 0xf); /* bits 3-6 is specific data for the operation */
+ dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */
+ switch (flag)
+ {
+ case 0:
+ if (dtype < 0x22) /* set min period for bit corruption */
+ dtype = 0x22;
+ retval = core_bench_state (res->size, res->memblock[3], res->seed1,
+ res->seed2, dtype, res->crc);
+ if (res->crcstate == 0)
+ res->crcstate = retval;
+ break;
+ case 1:
+ retval = core_bench_matrix (&(res->mat), dtype, res->crc);
+ if (res->crcmatrix == 0)
+ res->crcmatrix = retval;
+ break;
+ default:
+ retval = data;
+ break;
+ }
+ res->crc = crcu16 (retval, res->crc);
+ retval &= 0x007f;
+ *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
+ return retval;
+ }
+}
+
+/* { dg-final { scan-assembler-not "cm\.push" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c b/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
new file mode 100644
index 0000000..47c7888
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zcmp_shrink_wrap_separate2.c
@@ -0,0 +1,93 @@
+/* { dg-do compile } */
+/* { dg-options " -O2 -fno-shrink-wrap-separate -march=rv32imaf_zca_zcmp -mabi=ilp32f" } */
+/* { dg-skip-if "" { *-*-* } {"-O0" "-O1" "-Os" "-Og" "-O3" "-Oz" "-flto"} } */
+
+typedef struct MAT_PARAMS_S
+{
+ int N;
+ signed short *A;
+ signed short *B;
+ signed int *C;
+} mat_params;
+
+typedef struct CORE_PORTABLE_S
+{
+ unsigned char portable_id;
+} core_portable;
+
+typedef struct RESULTS_S
+{
+ /* inputs */
+ signed short seed1; /* Initializing seed */
+ signed short seed2; /* Initializing seed */
+ signed short seed3; /* Initializing seed */
+ void *memblock[4]; /* Pointer to safe memory location */
+ unsigned int size; /* Size of the data */
+ unsigned int iterations; /* Number of iterations to execute */
+ unsigned int execs; /* Bitmask of operations to execute */
+ struct list_head_s *list;
+ mat_params mat;
+ /* outputs */
+ unsigned short crc;
+ unsigned short crclist;
+ unsigned short crcmatrix;
+ unsigned short crcstate;
+ signed short err;
+ /* ultithread specific */
+ core_portable port;
+} core_results;
+
+extern signed short
+core_bench_state (unsigned int, void *, signed short, signed short,
+ signed short, unsigned short);
+
+extern signed short
+core_bench_matrix (mat_params *, signed short, unsigned short);
+
+extern unsigned short
+crcu16 (signed short, unsigned short);
+
+signed short
+calc_func (signed short *pdata, core_results *res)
+{
+ signed short data = *pdata;
+ signed short retval;
+ unsigned char optype
+ = (data >> 7)
+ & 1; /* bit 7 indicates if the function result has been cached */
+ if (optype) /* if cached, use cache */
+ return (data & 0x007f);
+ else
+ { /* otherwise calculate and cache the result */
+ signed short flag
+ = data & 0x7; /* bits 0-2 is type of function to perform */
+ signed short dtype
+ = ((data >> 3) & 0xf); /* bits 3-6 is specific data for the operation */
+ dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */
+ switch (flag)
+ {
+ case 0:
+ if (dtype < 0x22) /* set min period for bit corruption */
+ dtype = 0x22;
+ retval = core_bench_state (res->size, res->memblock[3], res->seed1,
+ res->seed2, dtype, res->crc);
+ if (res->crcstate == 0)
+ res->crcstate = retval;
+ break;
+ case 1:
+ retval = core_bench_matrix (&(res->mat), dtype, res->crc);
+ if (res->crcmatrix == 0)
+ res->crcmatrix = retval;
+ break;
+ default:
+ retval = data;
+ break;
+ }
+ res->crc = crcu16 (retval, res->crc);
+ retval &= 0x007f;
+ *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
+ return retval;
+ }
+}
+
+/* { dg-final { scan-assembler "cm\.push" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
index 2f2fa55..f7d8f44 100644
--- a/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
+++ b/gcc/testsuite/gcc.target/riscv/zcmp_stack_alignment.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options " -O0 -march=rv32e_zca_zcb_zcmp -mabi=ilp32e -mcmodel=medlow -fomit-frame-pointer -fno-shrink-wrap-separate" } */
+/* { dg-options " -O0 -march=rv32e_zca_zcb_zcmp -mabi=ilp32e -mcmodel=medlow -fomit-frame-pointer" } */
/* { dg-skip-if "" { *-*-* } {"-O2" "-O1" "-Os" "-Og" "-O3" "-Oz" "-flto"} } */
/* { dg-final { check-function-bodies "**" "" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zknd32.c b/gcc/testsuite/gcc.target/riscv/zknd32.c
index 5fcc66d..e60c027 100644
--- a/gcc/testsuite/gcc.target/riscv/zknd32.c
+++ b/gcc/testsuite/gcc.target/riscv/zknd32.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo1(uint32_t rs1, uint32_t rs2, int bs)
{
return __builtin_riscv_aes32dsi(rs1,rs2,bs);
}
-int32_t foo2(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo2(uint32_t rs1, uint32_t rs2, int bs)
{
return __builtin_riscv_aes32dsmi(rs1,rs2,bs);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zknd64.c b/gcc/testsuite/gcc.target/riscv/zknd64.c
index b1dff98..910b91c 100644
--- a/gcc/testsuite/gcc.target/riscv/zknd64.c
+++ b/gcc/testsuite/gcc.target/riscv/zknd64.c
@@ -4,27 +4,27 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2)
+uint64_t foo1(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64ds(rs1,rs2);
}
-int64_t foo2(int64_t rs1, int64_t rs2)
+uint64_t foo2(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64dsm(rs1,rs2);
}
-int64_t foo3(int64_t rs1, int rnum)
+uint64_t foo3(uint64_t rs1, unsigned rnum)
{
return __builtin_riscv_aes64ks1i(rs1,rnum);
}
-int64_t foo4(int64_t rs1, int64_t rs2)
+uint64_t foo4(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64ks2(rs1,rs2);
}
-int64_t foo5(int64_t rs1)
+uint64_t foo5(uint64_t rs1)
{
return __builtin_riscv_aes64im(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zkne32.c b/gcc/testsuite/gcc.target/riscv/zkne32.c
index c131c9a..252e9ff 100644
--- a/gcc/testsuite/gcc.target/riscv/zkne32.c
+++ b/gcc/testsuite/gcc.target/riscv/zkne32.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo1(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_aes32esi(rs1, rs2, bs);
}
-int32_t foo2(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo2(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_aes32esmi(rs1, rs2, bs);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zkne64.c b/gcc/testsuite/gcc.target/riscv/zkne64.c
index 7d82b5a..b25f6b5 100644
--- a/gcc/testsuite/gcc.target/riscv/zkne64.c
+++ b/gcc/testsuite/gcc.target/riscv/zkne64.c
@@ -4,22 +4,22 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2)
+uint64_t foo1(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64es(rs1,rs2);
}
-int64_t foo2(int64_t rs1, int64_t rs2)
+uint64_t foo2(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64esm(rs1,rs2);
}
-int64_t foo3(int64_t rs1, int rnum)
+uint64_t foo3(uint64_t rs1, unsigned rnum)
{
return __builtin_riscv_aes64ks1i(rs1,rnum);
}
-int64_t foo4(int64_t rs1, int64_t rs2)
+uint64_t foo4(uint64_t rs1, uint64_t rs2)
{
return __builtin_riscv_aes64ks2(rs1,rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zknh-sha256-32.c b/gcc/testsuite/gcc.target/riscv/zknh-sha256-32.c
new file mode 100644
index 0000000..c51b143
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/zknh-sha256-32.c
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -march=rv32gc_zknh -mabi=ilp32d" } */
+/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
+
+#include "zknh-sha256-64.c"
+
+/* { dg-final { scan-assembler-times "sha256sig0" 1 } } */
+/* { dg-final { scan-assembler-times "sha256sig1" 1 } } */
+/* { dg-final { scan-assembler-times "sha256sum0" 1 } } */
+/* { dg-final { scan-assembler-times "sha256sum1" 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/zknh-sha256.c b/gcc/testsuite/gcc.target/riscv/zknh-sha256-64.c
index 54329aa..2ef3760 100644
--- a/gcc/testsuite/gcc.target/riscv/zknh-sha256.c
+++ b/gcc/testsuite/gcc.target/riscv/zknh-sha256-64.c
@@ -2,22 +2,22 @@
/* { dg-options "-O2 -march=rv64gc_zknh -mabi=lp64" } */
/* { dg-skip-if "" { *-*-* } { "-g" "-flto"} } */
-long foo1(long rs1)
+unsigned int foo1(unsigned int rs1)
{
return __builtin_riscv_sha256sig0(rs1);
}
-long foo2(long rs1)
+unsigned int foo2(unsigned int rs1)
{
return __builtin_riscv_sha256sig1(rs1);
}
-long foo3(long rs1)
+unsigned int foo3(unsigned int rs1)
{
return __builtin_riscv_sha256sum0(rs1);
}
-long foo4(long rs1)
+unsigned int foo4(unsigned int rs1)
{
return __builtin_riscv_sha256sum1(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c b/gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
index 4ebc470..f2bcae3 100644
--- a/gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
+++ b/gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
@@ -4,32 +4,32 @@
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2)
+uint32_t foo1(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sig0h(rs1,rs2);
}
-int32_t foo2(int32_t rs1, int32_t rs2)
+uint32_t foo2(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sig0l(rs1,rs2);
}
-int32_t foo3(int32_t rs1, int32_t rs2)
+uint32_t foo3(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sig1h(rs1,rs2);
}
-int32_t foo4(int32_t rs1, int32_t rs2)
+uint32_t foo4(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sig1l(rs1,rs2);
}
-int32_t foo5(int32_t rs1, int32_t rs2)
+uint32_t foo5(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sum0r(rs1,rs2);
}
-int32_t foo6(int32_t rs1, int32_t rs2)
+uint32_t foo6(uint32_t rs1, uint32_t rs2)
{
return __builtin_riscv_sha512sum1r(rs1,rs2);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c b/gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
index 0fb5c75..4f24857 100644
--- a/gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
+++ b/gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
@@ -4,22 +4,22 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1)
+uint64_t foo1(uint64_t rs1)
{
return __builtin_riscv_sha512sig0(rs1);
}
-int64_t foo2(int64_t rs1)
+uint64_t foo2(uint64_t rs1)
{
return __builtin_riscv_sha512sig1(rs1);
}
-int64_t foo3(int64_t rs1)
+uint64_t foo3(uint64_t rs1)
{
return __builtin_riscv_sha512sum0(rs1);
}
-int64_t foo4(int64_t rs1)
+uint64_t foo4(uint64_t rs1)
{
return __builtin_riscv_sha512sum1(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zksed32.c b/gcc/testsuite/gcc.target/riscv/zksed32.c
index 9548d00..7df0414 100644
--- a/gcc/testsuite/gcc.target/riscv/zksed32.c
+++ b/gcc/testsuite/gcc.target/riscv/zksed32.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo1(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_sm4ks(rs1,rs2,bs);
}
-int32_t foo2(int32_t rs1, int32_t rs2, int bs)
+uint32_t foo2(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_sm4ed(rs1,rs2,bs);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zksed64.c b/gcc/testsuite/gcc.target/riscv/zksed64.c
index 190a654..913e7be 100644
--- a/gcc/testsuite/gcc.target/riscv/zksed64.c
+++ b/gcc/testsuite/gcc.target/riscv/zksed64.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1, int64_t rs2, int bs)
+uint32_t foo1(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_sm4ks(rs1,rs2,bs);
}
-int64_t foo2(int64_t rs1, int64_t rs2, int bs)
+uint32_t foo2(uint32_t rs1, uint32_t rs2, unsigned bs)
{
return __builtin_riscv_sm4ed(rs1,rs2,bs);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zksh32.c b/gcc/testsuite/gcc.target/riscv/zksh32.c
index 50370b5..20513f9 100644
--- a/gcc/testsuite/gcc.target/riscv/zksh32.c
+++ b/gcc/testsuite/gcc.target/riscv/zksh32.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int32_t foo1(int32_t rs1)
+uint32_t foo1(uint32_t rs1)
{
return __builtin_riscv_sm3p0(rs1);
}
-int32_t foo2(int32_t rs1)
+uint32_t foo2(uint32_t rs1)
{
return __builtin_riscv_sm3p1(rs1);
}
diff --git a/gcc/testsuite/gcc.target/riscv/zksh64.c b/gcc/testsuite/gcc.target/riscv/zksh64.c
index 69847f3..30bb1bd 100644
--- a/gcc/testsuite/gcc.target/riscv/zksh64.c
+++ b/gcc/testsuite/gcc.target/riscv/zksh64.c
@@ -4,12 +4,12 @@
#include <stdint-gcc.h>
-int64_t foo1(int64_t rs1)
+uint32_t foo1(uint32_t rs1)
{
return __builtin_riscv_sm3p0(rs1);
}
-int64_t foo2(int64_t rs1)
+uint32_t foo2(uint32_t rs1)
{
return __builtin_riscv_sm3p1(rs1);
}
diff --git a/gcc/testsuite/gfortran.dg/bounds_check_fail_6.f90 b/gcc/testsuite/gfortran.dg/bounds_check_fail_6.f90
new file mode 100644
index 0000000..9032913
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bounds_check_fail_6.f90
@@ -0,0 +1,29 @@
+! { dg-do run }
+! { dg-additional-options "-fcheck=bounds -g -fdump-tree-original" }
+! { dg-output "At line 18 .*" }
+! { dg-shouldfail "dimension 3 of array 'u%z' outside of expected range" }
+!
+! PR fortran/30802 - improve bounds-checking for array sections
+
+program test
+ implicit none
+ integer :: k = 0
+ integer, dimension(10,20,30) :: x = 42
+ type t
+ real, dimension(10,20,30) :: z = 23
+ end type t
+ type(t) :: u
+
+ ! pr30802
+ print *, u% z(1,:,k) ! runtime check only for dimension 3
+
+ ! pr97039
+ call foo (x(k,:,k+1)) ! runtime checks for dimensions 1,3
+contains
+ subroutine foo (a)
+ integer, intent(in) :: a(:)
+ end subroutine foo
+end program test
+
+! { dg-final { scan-tree-dump-times "'u%%z.' outside of expected range" 2 "original" } }
+! { dg-final { scan-tree-dump-times "'x.' outside of expected range" 4 "original" } }
diff --git a/gcc/testsuite/gfortran.dg/pr110996.f90 b/gcc/testsuite/gfortran.dg/pr110996.f90
new file mode 100644
index 0000000..0e75510
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr110996.f90
@@ -0,0 +1,16 @@
+! { dg-do compile }
+!
+! PR fortran/110996
+! This example used to result in memory errors and sometimes internal compiler
+! errors, because the rejection of the subroutine statement was causing the
+! symbol D to be freed without also freeing the symbol C which remained in the
+! namespace with a dangling pointer to D.
+!
+! Original testcase from Jeremy Bennett <jeremy.bennett@embecosm.com>
+
+PROGRAM p
+CONTAINS
+ SUBROUTINE c(d) e { dg-error "Syntax error" }
+ SUBROUTINE f
+ END
+END
diff --git a/gcc/testsuite/gm2/switches/case/fail/calendar.mod b/gcc/testsuite/gm2/switches/case/fail/calendar.mod
new file mode 100644
index 0000000..501cb2b
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/calendar.mod
@@ -0,0 +1,24 @@
+MODULE calendar ;
+
+
+TYPE
+ DayRange = [1..30] ;
+
+
+PROCEDURE sept1752 (day: DayRange) : BOOLEAN ;
+BEGIN
+ CASE day OF
+
+ 1..2,
+ 14..30: RETURN TRUE
+
+ END ;
+ RETURN FALSE
+END sept1752 ;
+
+
+BEGIN
+ IF sept1752 (4)
+ THEN
+ END
+END calendar.
diff --git a/gcc/testsuite/gm2/switches/case/fail/missingclause.mod b/gcc/testsuite/gm2/switches/case/fail/missingclause.mod
new file mode 100644
index 0000000..153ed9b
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/missingclause.mod
@@ -0,0 +1,23 @@
+MODULE missingclause ; (*!m2iso+gm2*)
+
+
+TYPE
+ colour = (red, green, blue) ;
+
+
+PROCEDURE init (c: colour) ;
+BEGIN
+ CASE c OF
+
+ red,
+ blue: (* User forgets green. *)
+
+ END
+END init ;
+
+
+VAR
+ rgb: colour ;
+BEGIN
+ init (rgb)
+END missingclause.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase.mod
new file mode 100644
index 0000000..577dccb
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase.mod
@@ -0,0 +1,24 @@
+MODULE subrangecase ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ (* 1710: | *)
+ 1711..1719: |
+ 1720: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase2.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase2.mod
new file mode 100644
index 0000000..6361770
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase2.mod
@@ -0,0 +1,22 @@
+MODULE subrangecase2 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1711..1720: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase2.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase3.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase3.mod
new file mode 100644
index 0000000..8b123f6
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase3.mod
@@ -0,0 +1,23 @@
+MODULE subrangecase3 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1710: |
+ 1712..1719: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase3.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod
new file mode 100644
index 0000000..390d588
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase4.mod
@@ -0,0 +1,23 @@
+MODULE subrangecase4 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1710: |
+ 1713..1718: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase4.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod
new file mode 100644
index 0000000..ded38cd
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase5.mod
@@ -0,0 +1,23 @@
+MODULE subrangecase5 ; (*!m2iso+gm2*)
+
+
+TYPE
+ alphabet = ['a'..'z'] ;
+
+
+PROCEDURE init (a: alphabet) ;
+BEGIN
+ CASE a OF
+
+ 'a',
+ 'e'..'x':
+
+ END
+END init ;
+
+
+VAR
+ a: alphabet ;
+BEGIN
+ init (a)
+END subrangecase5.
diff --git a/gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod b/gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod
new file mode 100644
index 0000000..46e18c7
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/subrangecase6.mod
@@ -0,0 +1,23 @@
+MODULE subrangecase6 ; (*!m2iso+gm2*)
+
+
+TYPE
+ alphabet = [MIN (CHAR)..MAX (CHAR)] ;
+
+
+PROCEDURE init (a: alphabet) ;
+BEGIN
+ CASE a OF
+
+ 'a',
+ 'e'..'x':
+
+ END
+END init ;
+
+
+VAR
+ a: alphabet ;
+BEGIN
+ init (a)
+END subrangecase6.
diff --git a/gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp b/gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp
new file mode 100644
index 0000000..2a3d48c
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/fail/switches-case-fail.exp
@@ -0,0 +1,37 @@
+# Expect driver script for GCC Regression Tests
+# Copyright (C) 2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# This file was written by Gaius Mulley (gaius.mulley@southwales.ac.uk)
+# for GNU Modula-2.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+# load support procs
+load_lib gm2-torture.exp
+
+gm2_init_iso "${srcdir}/gm2/switches/case/fail/" -Wcase-enum -Werror
+
+foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $testcase] then {
+ continue
+ }
+
+ gm2-torture-fail $testcase
+}
diff --git a/gcc/testsuite/gm2/switches/case/pass/enumcase.mod b/gcc/testsuite/gm2/switches/case/pass/enumcase.mod
new file mode 100644
index 0000000..7876598f
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/enumcase.mod
@@ -0,0 +1,24 @@
+MODULE enumcase ; (*!m2iso+gm2*)
+
+
+TYPE
+ colour = (red, blue, green) ;
+
+PROCEDURE init (c: colour) ;
+BEGIN
+ CASE c OF
+
+ red: |
+ (* blue..green: *)
+ blue,
+ green:
+
+ END
+END init ;
+
+
+VAR
+ rgb: colour ;
+BEGIN
+ init (rgb)
+END enumcase.
diff --git a/gcc/testsuite/gm2/switches/case/pass/enumcase2.mod b/gcc/testsuite/gm2/switches/case/pass/enumcase2.mod
new file mode 100644
index 0000000..796bc80
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/enumcase2.mod
@@ -0,0 +1,22 @@
+MODULE enumcase2 ; (*!m2iso+gm2*)
+
+
+TYPE
+ colour = (red, blue, green) ;
+
+PROCEDURE init (c: colour) ;
+BEGIN
+ CASE c OF
+
+ red: |
+ blue..green:
+
+ END
+END init ;
+
+
+VAR
+ rgb: colour ;
+BEGIN
+ init (rgb)
+END enumcase2.
diff --git a/gcc/testsuite/gm2/switches/case/pass/subrangecase.mod b/gcc/testsuite/gm2/switches/case/pass/subrangecase.mod
new file mode 100644
index 0000000..a0a8e35
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/subrangecase.mod
@@ -0,0 +1,24 @@
+MODULE subrangecase ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1710: |
+ 1711..1719: |
+ 1720: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase.
diff --git a/gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod b/gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod
new file mode 100644
index 0000000..b2badc7
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/subrangecase2.mod
@@ -0,0 +1,22 @@
+MODULE subrangecase2 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1710..1720: |
+
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase2.
diff --git a/gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod b/gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod
new file mode 100644
index 0000000..3e15e7b
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/subrangecase3.mod
@@ -0,0 +1,23 @@
+MODULE subrangecase3 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ 1710..1719: |
+
+ ELSE
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase3.
diff --git a/gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod b/gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod
new file mode 100644
index 0000000..50978b9
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/subrangecase4.mod
@@ -0,0 +1,21 @@
+MODULE subrangecase4 ; (*!m2iso+gm2*)
+
+
+TYPE
+ DateRange = [1710..1720] ;
+
+
+PROCEDURE init (d: DateRange) ;
+BEGIN
+ CASE d OF
+
+ ELSE
+ END
+END init ;
+
+
+VAR
+ year: DateRange ;
+BEGIN
+ init (year)
+END subrangecase4.
diff --git a/gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp b/gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp
new file mode 100644
index 0000000..92124ae
--- /dev/null
+++ b/gcc/testsuite/gm2/switches/case/pass/switches-case-pass.exp
@@ -0,0 +1,37 @@
+# Expect driver script for GCC Regression Tests
+# Copyright (C) 2003-2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+# This file was written by Gaius Mulley (gaius.mulley@southwales.ac.uk)
+# for GNU Modula-2.
+
+if $tracelevel then {
+ strace $tracelevel
+}
+
+# load support procs
+load_lib gm2-torture.exp
+
+gm2_init_iso "${srcdir}/gm2/switches/case/pass" -Wcase-enum -Werror
+
+foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.mod]] {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $testcase] then {
+ continue
+ }
+
+ gm2-torture $testcase
+}
diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp
index 0685de1..5df8032 100644
--- a/gcc/testsuite/lib/scanasm.exp
+++ b/gcc/testsuite/lib/scanasm.exp
@@ -777,33 +777,73 @@ proc scan-lto-assembler { args } {
dg-scan "scan-lto-assembler" 1 $testcase $output_file $args
}
-# Read assembly file FILENAME and store a mapping from function names
-# to function bodies in array RESULT. FILENAME has already been uploaded
-# locally where necessary and is known to exist.
-proc parse_function_bodies { filename result } {
- upvar $result up_result
+# Set up CONFIG for check-function-bodies.
+
+proc configure_check-function-bodies { config } {
+ upvar $config up_config
# Regexp for the start of a function definition (name in \1).
- set label {^([a-zA-Z_]\S+):$}
+ if { [istarget nvptx*-*-*] } {
+ set up_config(start) {^// BEGIN(?: GLOBAL|) FUNCTION DEF: ([a-zA-Z_]\S+)$}
+ } else {
+ set up_config(start) {^([a-zA-Z_]\S+):$}
+ }
# Regexp for the end of a function definition.
- set terminator {^\s*\.size}
-
+ if { [istarget nvptx*-*-*] } {
+ set up_config(end) {^\}$}
+ } else {
+ set up_config(end) {^\s*\.size}
+ }
+
# Regexp for lines that aren't interesting.
- set fluff {^\s*(?:\.|//|@|$)}
+ if { [istarget nvptx*-*-*] } {
+ # Skip lines beginning with '//' comments ('-fverbose-asm', for
+ # example).
+ set up_config(fluff) {^\s*(?://)}
+ } else {
+ # Skip lines beginning with labels ('.L[...]:') or other directives
+ # ('.align', '.cfi_startproc', '.quad [...]', '.text', etc.), '//' or
+ # '@' comments ('-fverbose-asm' or ARM-style, for example), or empty
+ # lines.
+ set up_config(fluff) {^\s*(?:\.|//|@|$)}
+ }
+
+ # Regexp for expected output lines prefix.
+ if { [istarget nvptx*-*-*] } {
+ # Certain instructions (such as predicable ones) are emitted with
+ # additional whitespace prefixed. On the other hand, labels don't get
+ # any whitespace prefixed, and we'd like to be able to match these,
+ # too. We thereare expect any amount of whitespace here.
+ set up_config(line_prefix) {\t*}
+ } else {
+ set up_config(line_prefix) {\t}
+ }
+}
+
+# Per CONFIG, read assembly file FILENAME and store a mapping from function
+# names to function bodies in array RESULT. FILENAME has already been uploaded
+# locally where necessary and is known to exist.
+
+proc parse_function_bodies { config filename result } {
+ upvar $config up_config
+ upvar $result up_result
set fd [open $filename r]
set in_function 0
while { [gets $fd line] >= 0 } {
- if { [regexp $label $line dummy function_name] } {
+ if { [regexp $up_config(start) $line dummy function_name] } {
set in_function 1
set function_body ""
} elseif { $in_function } {
- if { [regexp $terminator $line] } {
+ if { [regexp $up_config(end) $line] } {
+ verbose "parse_function_bodies: $function_name:\n$function_body"
set up_result($function_name) $function_body
set in_function 0
- } elseif { ![regexp $fluff $line] } {
+ } elseif { [regexp $up_config(fluff) $line] } {
+ verbose "parse_function_bodies: $function_name: ignoring fluff line: $line"
+ } else {
append function_body $line "\n"
}
}
@@ -893,13 +933,18 @@ proc check-function-bodies { args } {
set terminator "*/"
}
set terminator_len [string length $terminator]
+ # Regexp for the start of a function definition in expected output lines
+ # (name in \1). This may be different from '$config(start)'.
+ set start_expected {^(\S+):$}
+
+ configure_check-function-bodies config
set have_bodies 0
if { [is_remote host] } {
remote_upload host "$filename"
}
if { [file exists $output_filename] } {
- parse_function_bodies $output_filename functions
+ parse_function_bodies config $output_filename functions
set have_bodies 1
} else {
verbose -log "$testcase: output file does not exist"
@@ -907,7 +952,6 @@ proc check-function-bodies { args } {
set count 0
set function_regexp ""
- set label {^(\S+):$}
set lineno 1
set fd [open $input_filename r]
@@ -922,7 +966,7 @@ proc check-function-bodies { args } {
} else {
set selector "P"
}
- if { ![regexp $label $line dummy function_name] } {
+ if { ![regexp $start_expected $line dummy function_name] } {
close $fd
error "check-function-bodies: line $lineno does not have a function label"
}
@@ -937,7 +981,7 @@ proc check-function-bodies { args } {
} elseif { [string equal $line "..."] } {
append function_regexp ".*"
} else {
- append function_regexp "\t" $line "\n"
+ append function_regexp $config(line_prefix) $line "\n"
}
} elseif { [string equal -length $terminator_len $line $terminator] } {
if { ![string equal $selector "N"] } {
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 0ea8bcb..2de41ce 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -649,6 +649,22 @@ proc check_effective_target_trampolines { } {
# Return 1 if target has limited stack size.
proc check_effective_target_stack_size { } {
+ # For nvptx target, stack size limits are relevant for execution only.
+ if { [istarget nvptx-*-*] } {
+ # Find 'dg-do-what' in an outer frame.
+ set level 1
+ while true {
+ upvar $level dg-do-what dg-do-what
+ if [info exists dg-do-what] then break
+ incr level
+ }
+ verbose "check_effective_target_stack_size: found dg-do-what at level $level" 2
+
+ if { ![string equal [lindex ${dg-do-what} 0] run] } {
+ return 0
+ }
+ }
+
if [target_info exists gcc,stack_size] {
return 1
}
@@ -1820,14 +1836,14 @@ proc check_effective_target_riscv_vector_hw { } {
asm ("vadd.vv v8,v8,v16" : : : "v8");
return 0;
}
- } "-march=rv32gcv -mabi=ilp32d"] || [check_runtime riscv_vector_hw64 {
+ } ""] || [check_runtime riscv_vector_hw64 {
int main (void)
{
asm ("vsetivli zero,8,e16,m1,ta,ma");
asm ("vadd.vv v8,v8,v16" : : : "v8");
return 0;
}
- } "-march=rv64gcv -mabi=lp64d"]
+ } ""]
}
# Return 1 if the we can build a Zvfh vector example with proper -march flags
@@ -3805,6 +3821,7 @@ proc check_effective_target_vect_int { } {
|| [et-is-effective-target mips_msa]))
|| ([istarget s390*-*-*]
&& [check_effective_target_s390_vx])
+ || [istarget riscv*-*-*]
}}]
}
@@ -7519,7 +7536,8 @@ proc check_effective_target_vect_widen_sum_hi_to_si { } {
return [check_cached_effective_target_indexed vect_widen_sum_hi_to_si {
expr { [check_effective_target_vect_unpack]
|| [istarget powerpc*-*-*]
- || [istarget ia64-*-*] }}]
+ || [istarget ia64-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target plus current options supports a vector
@@ -7533,7 +7551,8 @@ proc check_effective_target_vect_widen_sum_qi_to_hi { } {
return [check_cached_effective_target_indexed vect_widen_sum_qi_to_hi {
expr { [check_effective_target_vect_unpack]
|| [is-effective-target arm_neon]
- || [istarget ia64-*-*] }}]
+ || [istarget ia64-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target plus current options supports a vector
@@ -7543,7 +7562,8 @@ proc check_effective_target_vect_widen_sum_qi_to_hi { } {
proc check_effective_target_vect_widen_sum_qi_to_si { } {
return [check_cached_effective_target_indexed vect_widen_sum_qi_to_si {
- expr { [istarget powerpc*-*-*] }}]
+ expr { [istarget powerpc*-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target plus current options supports a vector
@@ -7832,7 +7852,8 @@ proc check_effective_target_vect_hw_misalign { } {
|| [istarget aarch64*-*-*]
|| ([istarget mips*-*-*] && [et-is-effective-target mips_msa])
|| ([istarget s390*-*-*]
- && [check_effective_target_s390_vx]) } {
+ && [check_effective_target_s390_vx])
+ || ([istarget riscv*-*-*]) } {
return 1
}
if { [istarget arm*-*-*]
@@ -7938,7 +7959,8 @@ proc check_effective_target_vect_check_ptrs { } {
proc check_effective_target_vect_fully_masked { } {
return [expr { [check_effective_target_aarch64_sve]
- || [istarget amdgcn*-*-*] }]
+ || [istarget amdgcn*-*-*]
+ || [check_effective_target_riscv_vector] }]
}
# Return true if the target supports the @code{len_load} and
@@ -7946,7 +7968,8 @@ proc check_effective_target_vect_fully_masked { } {
proc check_effective_target_vect_len_load_store { } {
return [expr { [check_effective_target_has_arch_pwr9]
- || [check_effective_target_s390_vx] }]
+ || [check_effective_target_s390_vx]
+ || [check_effective_target_riscv_vector] }]
}
# Return the value of parameter vect-partial-vector-usage specified for
@@ -8007,8 +8030,9 @@ proc check_effective_target_vect_partial_vectors { } {
# alignment during vectorization.
proc check_effective_target_vect_element_align_preferred { } {
- return [expr { [check_effective_target_aarch64_sve]
- && [check_effective_target_vect_variable_length] }]
+ return [expr { ([check_effective_target_aarch64_sve]
+ && [check_effective_target_vect_variable_length])
+ || [check_effective_target_riscv_vector] }]
}
# Return true if vectorization of v2qi/v4qi/v8qi/v16qi/v2hi store is enabed.
@@ -8413,7 +8437,8 @@ proc check_effective_target_vect_load_lanes { } {
return [check_cached_effective_target vect_load_lanes {
expr { ([check_effective_target_arm_little_endian]
&& [check_effective_target_arm_neon_ok])
- || [istarget aarch64*-*-*] }}]
+ || [istarget aarch64*-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target supports vector masked loads.
@@ -8429,7 +8454,8 @@ proc check_effective_target_vect_masked_load { } {
proc check_effective_target_vect_masked_store { } {
return [expr { [check_avx_available]
|| [check_effective_target_aarch64_sve]
- || [istarget amdgcn*-*-*] }]
+ || [istarget amdgcn*-*-*]
+ || [check_effective_target_riscv_vector] }]
}
# Return 1 if the target supports vector gather loads via internal functions.
@@ -8509,7 +8535,8 @@ proc check_effective_target_vect_short_mult { } {
|| [et-is-effective-target mips_loongson_mmi]))
|| ([istarget s390*-*-*]
&& [check_effective_target_s390_vx])
- || [istarget amdgcn-*-*] }}]
+ || [istarget amdgcn-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target supports vector int multiplication, 0 otherwise.
@@ -8525,7 +8552,8 @@ proc check_effective_target_vect_int_mult { } {
|| [check_effective_target_arm32]
|| ([istarget s390*-*-*]
&& [check_effective_target_s390_vx])
- || [istarget amdgcn-*-*] }}]
+ || [istarget amdgcn-*-*]
+ || [istarget riscv*-*-*] }}]
}
# Return 1 if the target supports 64 bit hardware vector
@@ -8593,7 +8621,7 @@ proc check_effective_target_vect_interleave { } {
&& [check_effective_target_s390_vx]) }}]
}
-foreach N {2 3 4 8} {
+foreach N {2 3 4 5 6 7 8} {
eval [string map [list N $N] {
# Return 1 if the target supports 2-vector interleaving
proc check_effective_target_vect_stridedN { } {
@@ -8607,6 +8635,9 @@ foreach N {2 3 4 8} {
|| [istarget aarch64*-*-*]) && N >= 2 && N <= 4 } {
return 1
}
+ if { ([istarget riscv*-*-*]) && N >= 2 && N <= 8 } {
+ return 1
+ }
if [check_effective_target_vect_fully_masked] {
return 1
}
@@ -8643,6 +8674,11 @@ proc available_vector_sizes { } {
} elseif { [istarget amdgcn*-*-*] } {
# 6 different lane counts, and 4 element sizes
lappend result 4096 2048 1024 512 256 128 64 32 16 8 4 2
+ } elseif { [istarget riscv*-*-*] } {
+ if { [check_effective_target_riscv_vector] } {
+ lappend result 0 32
+ }
+ lappend result 128
} else {
# The traditional default asumption.
lappend result 128
@@ -11127,6 +11163,17 @@ proc check_vect_support_and_set_flags { } {
}
} elseif [istarget amdgcn-*-*] {
set dg-do-what-default run
+ } elseif [istarget riscv64-*-*] {
+ if [check_effective_target_riscv_vector_hw] {
+ lappend DEFAULT_VECTCFLAGS "--param" "riscv-autovec-preference=scalable"
+ lappend DEFAULT_VECTCFLAGS "--param" "riscv-vector-abi"
+ set dg-do-what-default run
+ } else {
+ lappend DEFAULT_VECTCFLAGS "-march=rv64gcv_zvfh" "-mabi=lp64d"
+ lappend DEFAULT_VECTCFLAGS "--param" "riscv-autovec-preference=scalable"
+ lappend DEFAULT_VECTCFLAGS "--param" "riscv-vector-abi"
+ set dg-do-what-default compile
+ }
} else {
return 0
}
diff --git a/gcc/toplev.cc b/gcc/toplev.cc
index 6c1a6f4..db62e3e 100644
--- a/gcc/toplev.cc
+++ b/gcc/toplev.cc
@@ -2336,6 +2336,7 @@ toplev::finalize (void)
cgraph_cc_finalize ();
cgraphunit_cc_finalize ();
symtab_thunks_cc_finalize ();
+ dwarf2cfi_cc_finalize ();
dwarf2out_cc_finalize ();
gcse_cc_finalize ();
ipa_cp_cc_finalize ();
@@ -2350,6 +2351,8 @@ toplev::finalize (void)
save_decoded_options = NULL;
save_decoded_options_count = 0;
+ ggc_common_finalize ();
+
/* Clean up the context (and pass_manager etc). */
delete g;
g = NULL;
diff --git a/gcc/tree-diagnostic-path.cc b/gcc/tree-diagnostic-path.cc
index 988ed7f..84148da 100644
--- a/gcc/tree-diagnostic-path.cc
+++ b/gcc/tree-diagnostic-path.cc
@@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#include "config.h"
+#define INCLUDE_VECTOR
#include "system.h"
#include "coretypes.h"
#include "tree.h"
@@ -83,6 +84,9 @@ can_consolidate_events (const diagnostic_event &e1,
const diagnostic_event &e2,
bool check_locations)
{
+ if (e1.get_thread_id () != e2.get_thread_id ())
+ return false;
+
if (e1.get_fndecl () != e2.get_fndecl ())
return false;
@@ -109,20 +113,67 @@ can_consolidate_events (const diagnostic_event &e1,
return true;
}
-/* A range of consecutive events within a diagnostic_path,
- all with the same fndecl and stack_depth, and which are suitable
+struct event_range;
+struct path_summary;
+class thread_event_printer;
+
+/* A bundle of information about all of the events in a diagnostic_path
+ relating to a specific path, for use by path_summary. */
+
+class per_thread_summary
+{
+public:
+ per_thread_summary (label_text name, unsigned swimlane_idx)
+ : m_name (std::move (name)),
+ m_swimlane_idx (swimlane_idx),
+ m_min_depth (INT_MAX),
+ m_max_depth (INT_MIN)
+ {}
+
+ void update_depth_limits (int stack_depth)
+ {
+ if (stack_depth < m_min_depth)
+ m_min_depth = stack_depth;
+ if (stack_depth > m_max_depth)
+ m_max_depth = stack_depth;
+ }
+
+ const char *get_name () const { return m_name.get (); }
+ unsigned get_swimlane_index () const { return m_swimlane_idx; }
+
+private:
+ friend struct path_summary;
+ friend class thread_event_printer;
+
+ const label_text m_name;
+
+ /* The "swimlane index" is the order in which this per_thread_summary
+ was created, for use when printing the events. */
+ const unsigned m_swimlane_idx;
+
+ // The event ranges specific to this thread:
+ auto_vec<event_range *> m_event_ranges;
+ int m_min_depth;
+ int m_max_depth;
+};
+
+/* A range of consecutive events within a diagnostic_path, all within the
+ same thread, and with the same fndecl and stack_depth, and which are suitable
to print with a single call to diagnostic_show_locus. */
struct event_range
{
event_range (const diagnostic_path *path, unsigned start_idx,
- const diagnostic_event &initial_event)
+ const diagnostic_event &initial_event,
+ const per_thread_summary &t)
: m_path (path),
m_initial_event (initial_event),
m_fndecl (initial_event.get_fndecl ()),
m_stack_depth (initial_event.get_stack_depth ()),
m_start_idx (start_idx), m_end_idx (start_idx),
m_path_label (path, start_idx),
- m_richloc (initial_event.get_location (), &m_path_label)
+ m_richloc (initial_event.get_location (), &m_path_label),
+ m_thread_id (initial_event.get_thread_id ()),
+ m_per_thread_summary (t)
{}
bool maybe_add_event (const diagnostic_event &new_ev, unsigned idx,
@@ -142,7 +193,7 @@ struct event_range
/* Print the events in this range to DC, typically as a single
call to the printer's diagnostic_show_locus. */
- void print (diagnostic_context *dc)
+ void print (diagnostic_context *dc, pretty_printer *pp)
{
location_t initial_loc = m_initial_event.get_location ();
@@ -172,7 +223,6 @@ struct event_range
const diagnostic_event &iter_event = m_path->get_event (i);
diagnostic_event_id_t event_id (i);
label_text event_text (iter_event.get_desc (true));
- pretty_printer *pp = dc->printer;
pp_printf (pp, " %@: %s", &event_id, event_text.get ());
pp_newline (pp);
}
@@ -180,7 +230,7 @@ struct event_range
}
/* Call diagnostic_show_locus to show the events using labels. */
- diagnostic_show_locus (dc, &m_richloc, DK_DIAGNOSTIC_PATH);
+ diagnostic_show_locus (dc, &m_richloc, DK_DIAGNOSTIC_PATH, pp);
/* If we have a macro expansion, show the expansion to the user. */
if (linemap_location_from_macro_expansion_p (line_table, initial_loc))
@@ -198,19 +248,49 @@ struct event_range
unsigned m_end_idx;
path_label m_path_label;
gcc_rich_location m_richloc;
+ diagnostic_thread_id_t m_thread_id;
+ const per_thread_summary &m_per_thread_summary;
};
/* A struct for grouping together the events in a diagnostic_path into
- ranges of events, partitioned by stack frame (i.e. by fndecl and
- stack depth). */
+ ranges of events, partitioned by thread and by stack frame (i.e. by fndecl
+ and stack depth). */
struct path_summary
{
path_summary (const diagnostic_path &path, bool check_rich_locations);
unsigned get_num_ranges () const { return m_ranges.length (); }
+ bool multithreaded_p () const { return m_per_thread_summary.length () > 1; }
+
+ const per_thread_summary &get_events_for_thread_id (diagnostic_thread_id_t tid)
+ {
+ per_thread_summary **slot = m_thread_id_to_events.get (tid);
+ gcc_assert (slot);
+ gcc_assert (*slot);
+ return **slot;
+ }
auto_delete_vec <event_range> m_ranges;
+ auto_delete_vec <per_thread_summary> m_per_thread_summary;
+ hash_map<int_hash<diagnostic_thread_id_t, -1, -2>,
+ per_thread_summary *> m_thread_id_to_events;
+
+private:
+ per_thread_summary &
+ get_or_create_events_for_thread_id (const diagnostic_path &path,
+ diagnostic_thread_id_t tid)
+ {
+ if (per_thread_summary **slot = m_thread_id_to_events.get (tid))
+ return **slot;
+
+ const diagnostic_thread &thread = path.get_thread (tid);
+ per_thread_summary *pts = new per_thread_summary (thread.get_name (false),
+ m_per_thread_summary.length ());
+ m_thread_id_to_events.put (tid, pts);
+ m_per_thread_summary.safe_push (pts);
+ return *pts;
+ }
};
/* path_summary's ctor. */
@@ -224,12 +304,19 @@ path_summary::path_summary (const diagnostic_path &path,
for (unsigned idx = 0; idx < num_events; idx++)
{
const diagnostic_event &event = path.get_event (idx);
+ const diagnostic_thread_id_t thread_id = event.get_thread_id ();
+ per_thread_summary &pts
+ = get_or_create_events_for_thread_id (path, thread_id);
+
+ pts.update_depth_limits (event.get_stack_depth ());
+
if (cur_event_range)
if (cur_event_range->maybe_add_event (event, idx, check_rich_locations))
continue;
- cur_event_range = new event_range (&path, idx, event);
+ cur_event_range = new event_range (&path, idx, event, pts);
m_ranges.safe_push (cur_event_range);
+ pts.m_event_ranges.safe_push (cur_event_range);
}
}
@@ -259,6 +346,184 @@ print_fndecl (pretty_printer *pp, tree fndecl, bool quoted)
pp_string (pp, n);
}
+static const int base_indent = 2;
+static const int per_frame_indent = 2;
+
+/* A bundle of state for printing event_range instances for a particular
+ thread. */
+
+class thread_event_printer
+{
+public:
+ thread_event_printer (const per_thread_summary &t, bool show_depths)
+ : m_per_thread_summary (t),
+ m_show_depths (show_depths),
+ m_cur_indent (base_indent),
+ m_vbar_column_for_depth (),
+ m_num_printed (0)
+ {
+ }
+
+ /* Get the previous event_range within this thread, if any. */
+ const event_range *get_any_prev_range () const
+ {
+ if (m_num_printed > 0)
+ return m_per_thread_summary.m_event_ranges[m_num_printed - 1];
+ else
+ return nullptr;
+ }
+
+ /* Get the next event_range within this thread, if any. */
+ const event_range *get_any_next_range () const
+ {
+ if (m_num_printed < m_per_thread_summary.m_event_ranges.length () - 1)
+ return m_per_thread_summary.m_event_ranges[m_num_printed + 1];
+ else
+ return nullptr;
+ }
+
+ void print_swimlane_for_event_range (diagnostic_context *dc,
+ pretty_printer *pp,
+ event_range *range)
+ {
+ const char *const line_color = "path";
+ const char *start_line_color
+ = colorize_start (pp_show_color (pp), line_color);
+ const char *end_line_color = colorize_stop (pp_show_color (pp));
+
+ write_indent (pp, m_cur_indent);
+ if (const event_range *prev_range = get_any_prev_range ())
+ {
+ if (range->m_stack_depth > prev_range->m_stack_depth)
+ {
+ /* Show pushed stack frame(s). */
+ const char *push_prefix = "+--> ";
+ pp_string (pp, start_line_color);
+ pp_string (pp, push_prefix);
+ pp_string (pp, end_line_color);
+ m_cur_indent += strlen (push_prefix);
+ }
+ }
+ if (range->m_fndecl)
+ {
+ print_fndecl (pp, range->m_fndecl, true);
+ pp_string (pp, ": ");
+ }
+ if (range->m_start_idx == range->m_end_idx)
+ pp_printf (pp, "event %i",
+ range->m_start_idx + 1);
+ else
+ pp_printf (pp, "events %i-%i",
+ range->m_start_idx + 1, range->m_end_idx + 1);
+ if (m_show_depths)
+ pp_printf (pp, " (depth %i)", range->m_stack_depth);
+ pp_newline (pp);
+
+ /* Print a run of events. */
+ {
+ write_indent (pp, m_cur_indent + per_frame_indent);
+ pp_string (pp, start_line_color);
+ pp_string (pp, "|");
+ pp_string (pp, end_line_color);
+ pp_newline (pp);
+
+ char *saved_prefix = pp_take_prefix (pp);
+ char *prefix;
+ {
+ pretty_printer tmp_pp;
+ write_indent (&tmp_pp, m_cur_indent + per_frame_indent);
+ pp_string (&tmp_pp, start_line_color);
+ pp_string (&tmp_pp, "|");
+ pp_string (&tmp_pp, end_line_color);
+ prefix = xstrdup (pp_formatted_text (&tmp_pp));
+ }
+ pp_set_prefix (pp, prefix);
+ pp_prefixing_rule (pp) = DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE;
+ range->print (dc, pp);
+ pp_set_prefix (pp, saved_prefix);
+
+ write_indent (pp, m_cur_indent + per_frame_indent);
+ pp_string (pp, start_line_color);
+ pp_string (pp, "|");
+ pp_string (pp, end_line_color);
+ pp_newline (pp);
+ }
+
+ if (const event_range *next_range = get_any_next_range ())
+ {
+ if (range->m_stack_depth > next_range->m_stack_depth)
+ {
+ if (m_vbar_column_for_depth.get (next_range->m_stack_depth))
+ {
+ /* Show returning from stack frame(s), by printing
+ something like:
+ " |\n"
+ " <------------ +\n"
+ " |\n". */
+ int vbar_for_next_frame
+ = *m_vbar_column_for_depth.get (next_range->m_stack_depth);
+
+ int indent_for_next_frame
+ = vbar_for_next_frame - per_frame_indent;
+ write_indent (pp, vbar_for_next_frame);
+ pp_string (pp, start_line_color);
+ pp_character (pp, '<');
+ for (int i = indent_for_next_frame + per_frame_indent;
+ i < m_cur_indent + per_frame_indent - 1; i++)
+ pp_character (pp, '-');
+ pp_character (pp, '+');
+ pp_string (pp, end_line_color);
+ pp_newline (pp);
+ m_cur_indent = indent_for_next_frame;
+
+ write_indent (pp, vbar_for_next_frame);
+ pp_string (pp, start_line_color);
+ pp_character (pp, '|');
+ pp_string (pp, end_line_color);
+ pp_newline (pp);
+ }
+ else
+ {
+ /* Handle disjoint paths (e.g. a callback at some later
+ time). */
+ m_cur_indent = base_indent;
+ }
+ }
+ else if (range->m_stack_depth < next_range->m_stack_depth)
+ {
+ /* Prepare to show pushed stack frame. */
+ gcc_assert (range->m_stack_depth != EMPTY);
+ gcc_assert (range->m_stack_depth != DELETED);
+ m_vbar_column_for_depth.put (range->m_stack_depth,
+ m_cur_indent + per_frame_indent);
+ m_cur_indent += per_frame_indent;
+ }
+ }
+
+ m_num_printed++;
+ }
+
+ int get_cur_indent () const { return m_cur_indent; }
+
+private:
+ const per_thread_summary &m_per_thread_summary;
+ bool m_show_depths;
+
+ /* Print the ranges. */
+ int m_cur_indent;
+
+ /* Keep track of column numbers of existing '|' characters for
+ stack depths we've already printed. */
+ static const int EMPTY = -1;
+ static const int DELETED = -2;
+ typedef int_hash <int, EMPTY, DELETED> vbar_hash;
+ hash_map <vbar_hash, int> m_vbar_column_for_depth;
+
+ /* How many event ranges within this swimlane have we printed.
+ This is the index of the next event_range to print. */
+ unsigned m_num_printed;
+};
+
/* Print path_summary PS to DC, giving an overview of the interprocedural
calls and returns.
@@ -292,145 +557,33 @@ print_fndecl (pretty_printer *pp, tree fndecl, bool quoted)
For events with UNKNOWN_LOCATION, print a summary of each the event. */
-void
+static void
print_path_summary_as_text (const path_summary *ps, diagnostic_context *dc,
bool show_depths)
{
pretty_printer *pp = dc->printer;
- const int per_frame_indent = 2;
-
- const char *const line_color = "path";
- const char *start_line_color
- = colorize_start (pp_show_color (pp), line_color);
- const char *end_line_color = colorize_stop (pp_show_color (pp));
+ std::vector<thread_event_printer> thread_event_printers;
+ for (auto t : ps->m_per_thread_summary)
+ thread_event_printers.push_back (thread_event_printer (*t, show_depths));
- /* Keep track of column numbers of existing '|' characters for
- stack depths we've already printed. */
- const int EMPTY = -1;
- const int DELETED = -2;
- typedef int_hash <int, EMPTY, DELETED> vbar_hash;
- hash_map <vbar_hash, int> vbar_column_for_depth;
-
- /* Print the ranges. */
- const int base_indent = 2;
- int cur_indent = base_indent;
unsigned i;
event_range *range;
FOR_EACH_VEC_ELT (ps->m_ranges, i, range)
{
- write_indent (pp, cur_indent);
- if (i > 0)
- {
- const event_range *prev_range = ps->m_ranges[i - 1];
- if (range->m_stack_depth > prev_range->m_stack_depth)
- {
- /* Show pushed stack frame(s). */
- const char *push_prefix = "+--> ";
- pp_string (pp, start_line_color);
- pp_string (pp, push_prefix);
- pp_string (pp, end_line_color);
- cur_indent += strlen (push_prefix);
- }
- }
- if (range->m_fndecl)
- {
- print_fndecl (pp, range->m_fndecl, true);
- pp_string (pp, ": ");
- }
- if (range->m_start_idx == range->m_end_idx)
- pp_printf (pp, "event %i",
- range->m_start_idx + 1);
- else
- pp_printf (pp, "events %i-%i",
- range->m_start_idx + 1, range->m_end_idx + 1);
- if (show_depths)
- pp_printf (pp, " (depth %i)", range->m_stack_depth);
- pp_newline (pp);
-
- /* Print a run of events. */
- {
- write_indent (pp, cur_indent + per_frame_indent);
- pp_string (pp, start_line_color);
- pp_string (pp, "|");
- pp_string (pp, end_line_color);
- pp_newline (pp);
-
- char *saved_prefix = pp_take_prefix (pp);
- char *prefix;
- {
- pretty_printer tmp_pp;
- write_indent (&tmp_pp, cur_indent + per_frame_indent);
- pp_string (&tmp_pp, start_line_color);
- pp_string (&tmp_pp, "|");
- pp_string (&tmp_pp, end_line_color);
- prefix = xstrdup (pp_formatted_text (&tmp_pp));
- }
- pp_set_prefix (pp, prefix);
- pp_prefixing_rule (pp) = DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE;
- range->print (dc);
- pp_set_prefix (pp, saved_prefix);
-
- write_indent (pp, cur_indent + per_frame_indent);
- pp_string (pp, start_line_color);
- pp_string (pp, "|");
- pp_string (pp, end_line_color);
- pp_newline (pp);
- }
-
- if (i < ps->m_ranges.length () - 1)
- {
- const event_range *next_range = ps->m_ranges[i + 1];
-
- if (range->m_stack_depth > next_range->m_stack_depth)
- {
- if (vbar_column_for_depth.get (next_range->m_stack_depth))
- {
- /* Show returning from stack frame(s), by printing
- something like:
- " |\n"
- " <------------ +\n"
- " |\n". */
- int vbar_for_next_frame
- = *vbar_column_for_depth.get (next_range->m_stack_depth);
-
- int indent_for_next_frame
- = vbar_for_next_frame - per_frame_indent;
- write_indent (pp, vbar_for_next_frame);
- pp_string (pp, start_line_color);
- pp_character (pp, '<');
- for (int i = indent_for_next_frame + per_frame_indent;
- i < cur_indent + per_frame_indent - 1; i++)
- pp_character (pp, '-');
- pp_character (pp, '+');
- pp_string (pp, end_line_color);
- pp_newline (pp);
- cur_indent = indent_for_next_frame;
-
- write_indent (pp, vbar_for_next_frame);
- pp_string (pp, start_line_color);
- pp_character (pp, '|');
- pp_string (pp, end_line_color);
- pp_newline (pp);
- }
- else
- {
- /* Handle disjoint paths (e.g. a callback at some later
- time). */
- cur_indent = base_indent;
- }
- }
- else if (range->m_stack_depth < next_range->m_stack_depth)
- {
- /* Prepare to show pushed stack frame. */
- gcc_assert (range->m_stack_depth != EMPTY);
- gcc_assert (range->m_stack_depth != DELETED);
- vbar_column_for_depth.put (range->m_stack_depth,
- cur_indent + per_frame_indent);
- cur_indent += per_frame_indent;
- }
-
- }
+ const int swimlane_idx
+ = range->m_per_thread_summary.get_swimlane_index ();
+ if (ps->multithreaded_p ())
+ if (i == 0 || ps->m_ranges[i - 1]->m_thread_id != range->m_thread_id)
+ {
+ if (i > 0)
+ pp_newline (pp);
+ pp_printf (pp, "Thread: %qs",
+ range->m_per_thread_summary.get_name ());
+ pp_newline (pp);
+ }
+ thread_event_printer &tep = thread_event_printers[swimlane_idx];
+ tep.print_swimlane_for_event_range (dc, pp, range);
}
}
@@ -497,6 +650,7 @@ default_tree_diagnostic_path_printer (diagnostic_context *context,
pp_flush (context->printer);
pp_set_prefix (context->printer, saved_prefix);
}
+ break;
}
}
diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index 047f923..d4e9202 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -53,6 +53,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h"
#include "tree-ssa.h"
#include "gimple-range.h"
+#include "tree-ssa-dce.h"
/* This pass propagates the RHS of assignment statements into use
sites of the LHS of the assignment. It's basically a specialized
@@ -3502,8 +3503,9 @@ pass_forwprop::execute (function *fun)
|= EDGE_EXECUTABLE;
auto_vec<gimple *, 4> to_fixup;
auto_vec<gimple *, 32> to_remove;
+ auto_bitmap simple_dce_worklist;
+ auto_bitmap need_ab_cleanup;
to_purge = BITMAP_ALLOC (NULL);
- bitmap need_ab_cleanup = BITMAP_ALLOC (NULL);
for (int i = 0; i < postorder_num; ++i)
{
gimple_stmt_iterator gsi;
@@ -3902,10 +3904,14 @@ pass_forwprop::execute (function *fun)
{
tree use = USE_FROM_PTR (usep);
tree val = fwprop_ssa_val (use);
- if (val && val != use && may_propagate_copy (use, val))
+ if (val && val != use)
{
- propagate_value (usep, val);
- substituted_p = true;
+ bitmap_set_bit (simple_dce_worklist, SSA_NAME_VERSION (use));
+ if (may_propagate_copy (use, val))
+ {
+ propagate_value (usep, val);
+ substituted_p = true;
+ }
}
}
if (substituted_p
@@ -3925,6 +3931,11 @@ pass_forwprop::execute (function *fun)
&& gimple_call_noreturn_p (stmt));
changed = false;
+ auto_vec<tree, 8> uses;
+ FOR_EACH_SSA_USE_OPERAND (usep, stmt, iter, SSA_OP_USE)
+ if (uses.space (1))
+ uses.quick_push (USE_FROM_PTR (usep));
+
if (fold_stmt (&gsi, fwprop_ssa_val))
{
changed = true;
@@ -3935,6 +3946,12 @@ pass_forwprop::execute (function *fun)
if (gimple_cond_true_p (cond)
|| gimple_cond_false_p (cond))
cfg_changed = true;
+ /* Queue old uses for simple DCE. */
+ for (tree use : uses)
+ if (TREE_CODE (use) == SSA_NAME
+ && !SSA_NAME_IS_DEFAULT_DEF (use))
+ bitmap_set_bit (simple_dce_worklist,
+ SSA_NAME_VERSION (use));
}
if (changed || substituted_p)
@@ -4070,7 +4087,7 @@ pass_forwprop::execute (function *fun)
continue;
tree val = fwprop_ssa_val (arg);
if (val != arg
- && may_propagate_copy (arg, val))
+ && may_propagate_copy (arg, val, !(e->flags & EDGE_ABNORMAL)))
propagate_value (use_p, val);
}
@@ -4115,6 +4132,7 @@ pass_forwprop::execute (function *fun)
release_defs (stmt);
}
}
+ simple_dce_from_worklist (simple_dce_worklist, to_purge);
/* Fixup stmts that became noreturn calls. This may require splitting
blocks and thus isn't possible during the walk. Do this
@@ -4135,7 +4153,6 @@ pass_forwprop::execute (function *fun)
cfg_changed |= gimple_purge_all_dead_eh_edges (to_purge);
cfg_changed |= gimple_purge_all_dead_abnormal_call_edges (need_ab_cleanup);
BITMAP_FREE (to_purge);
- BITMAP_FREE (need_ab_cleanup);
if (get_range_query (fun) != get_global_range_query ())
disable_ranger (fun);
diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc
index 95c2269..51c14d6 100644
--- a/gcc/tree-ssa-math-opts.cc
+++ b/gcc/tree-ssa-math-opts.cc
@@ -116,6 +116,7 @@ along with GCC; see the file COPYING3. If not see
#include "targhooks.h"
#include "domwalk.h"
#include "tree-ssa-math-opts.h"
+#include "dbgcnt.h"
/* This structure represents one basic block that either computes a
division, or is a common dominator for basic block that compute a
@@ -2754,6 +2755,14 @@ convert_mult_to_widen (gimple *stmt, gimple_stmt_iterator *gsi)
if (!is_widening_mult_p (stmt, &type1, &rhs1, &type2, &rhs2))
return false;
+ /* if any one of rhs1 and rhs2 is subject to abnormal coalescing,
+ avoid the tranform. */
+ if ((TREE_CODE (rhs1) == SSA_NAME
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rhs1))
+ || (TREE_CODE (rhs2) == SSA_NAME
+ && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rhs2)))
+ return false;
+
to_mode = SCALAR_INT_TYPE_MODE (type);
from_mode = SCALAR_INT_TYPE_MODE (type1);
if (to_mode == from_mode)
@@ -3366,6 +3375,9 @@ convert_mult_to_fma (gimple *mul_stmt, tree op1, tree op2,
&& !has_single_use (mul_result))
return false;
+ if (!dbg_cnt (form_fma))
+ return false;
+
/* Make sure that the multiplication statement becomes dead after
the transformation, thus that all uses are transformed to FMAs.
This means we assume that an FMA operation has the same cost
diff --git a/gcc/tree-ssa-propagate.cc b/gcc/tree-ssa-propagate.cc
index cb68b41..a29c493 100644
--- a/gcc/tree-ssa-propagate.cc
+++ b/gcc/tree-ssa-propagate.cc
@@ -1032,11 +1032,12 @@ substitute_and_fold_engine::substitute_and_fold (basic_block block)
/* Return true if we may propagate ORIG into DEST, false otherwise.
- If DEST_NOT_PHI_ARG_P is true then assume the propagation does
- not happen into a PHI argument which relaxes some constraints. */
+ If DEST_NOT_ABNORMAL_PHI_EDGE_P is true then assume the propagation does
+ not happen into a PHI argument which flows in from an abnormal edge
+ which relaxes some constraints. */
bool
-may_propagate_copy (tree dest, tree orig, bool dest_not_phi_arg_p)
+may_propagate_copy (tree dest, tree orig, bool dest_not_abnormal_phi_edge_p)
{
tree type_d = TREE_TYPE (dest);
tree type_o = TREE_TYPE (orig);
@@ -1056,9 +1057,9 @@ may_propagate_copy (tree dest, tree orig, bool dest_not_phi_arg_p)
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (orig))
return false;
/* Similarly if DEST flows in from an abnormal edge then the copy cannot be
- propagated. If we know we do not propagate into a PHI argument this
+ propagated. If we know we do not propagate into such a PHI argument this
does not apply. */
- else if (!dest_not_phi_arg_p
+ else if (!dest_not_abnormal_phi_edge_p
&& TREE_CODE (dest) == SSA_NAME
&& SSA_NAME_OCCURS_IN_ABNORMAL_PHI (dest))
return false;
@@ -1162,8 +1163,13 @@ void
propagate_value (use_operand_p op_p, tree val)
{
if (flag_checking)
- gcc_assert (may_propagate_copy (USE_FROM_PTR (op_p), val,
- !is_a <gphi *> (USE_STMT (op_p))));
+ {
+ bool ab = (is_a <gphi *> (USE_STMT (op_p))
+ && (gimple_phi_arg_edge (as_a <gphi *> (USE_STMT (op_p)),
+ PHI_ARG_INDEX_FROM_USE (op_p))
+ ->flags & EDGE_ABNORMAL));
+ gcc_assert (may_propagate_copy (USE_FROM_PTR (op_p), val, !ab));
+ }
replace_exp (op_p, val);
}
diff --git a/gcc/tree-ssa-sccvn.cc b/gcc/tree-ssa-sccvn.cc
index b41bc66..1eaf5f6 100644
--- a/gcc/tree-ssa-sccvn.cc
+++ b/gcc/tree-ssa-sccvn.cc
@@ -1903,6 +1903,7 @@ struct vn_walk_cb_data
alias_set_type first_base_set;
splay_tree known_ranges;
obstack ranges_obstack;
+ static constexpr HOST_WIDE_INT bufsize = 64;
};
vn_walk_cb_data::~vn_walk_cb_data ()
@@ -1973,7 +1974,6 @@ vn_walk_cb_data::push_partial_def (pd_data pd,
HOST_WIDE_INT offseti,
HOST_WIDE_INT maxsizei)
{
- const HOST_WIDE_INT bufsize = 64;
/* We're using a fixed buffer for encoding so fail early if the object
we want to interpret is bigger. */
if (maxsizei > bufsize * BITS_PER_UNIT
@@ -5414,6 +5414,7 @@ visit_nary_op (tree lhs, gassign *stmt)
&& CHAR_BIT == 8
&& BITS_PER_UNIT == 8
&& BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
+ && TYPE_PRECISION (type) <= vn_walk_cb_data::bufsize * BITS_PER_UNIT
&& !integer_all_onesp (gimple_assign_rhs2 (stmt))
&& !integer_zerop (gimple_assign_rhs2 (stmt)))
{
@@ -7398,7 +7399,8 @@ eliminate_dom_walker::before_dom_children (basic_block b)
|| virtual_operand_p (arg))
continue;
tree sprime = eliminate_avail (b, arg);
- if (sprime && may_propagate_copy (arg, sprime))
+ if (sprime && may_propagate_copy (arg, sprime,
+ !(e->flags & EDGE_ABNORMAL)))
propagate_value (use_p, sprime);
}
@@ -8191,7 +8193,7 @@ process_bb (rpo_elim &avail, basic_block bb,
arg);
if (sprime
&& sprime != arg
- && may_propagate_copy (arg, sprime))
+ && may_propagate_copy (arg, sprime, !(e->flags & EDGE_ABNORMAL)))
propagate_value (use_p, sprime);
}
diff --git a/gcc/tree-ssa-threadbackward.cc b/gcc/tree-ssa-threadbackward.cc
index d5da4b0..c45f4b2 100644
--- a/gcc/tree-ssa-threadbackward.cc
+++ b/gcc/tree-ssa-threadbackward.cc
@@ -62,7 +62,7 @@ class back_threader_profitability
{
public:
back_threader_profitability (bool speed_p, gimple *stmt);
- bool possibly_profitable_path_p (const vec<basic_block> &, tree, bool *);
+ bool possibly_profitable_path_p (const vec<basic_block> &, bool *);
bool profitable_path_p (const vec<basic_block> &,
edge taken, bool *irreducible_loop);
private:
@@ -126,9 +126,6 @@ private:
auto_bitmap m_imports;
// The last statement in the path.
gimple *m_last_stmt;
- // This is a bit of a wart. It's used to pass the LHS SSA name to
- // the profitability engine.
- tree m_name;
// Marker to differentiate unreachable edges.
static const edge UNREACHABLE_EDGE;
// Set to TRUE if unknown SSA names along a path should be resolved
@@ -366,7 +363,7 @@ back_threader::find_paths_to_names (basic_block bb, bitmap interesting,
// on the way to the backedge could be worthwhile.
bool large_non_fsm;
if (m_path.length () > 1
- && (!profit.possibly_profitable_path_p (m_path, m_name, &large_non_fsm)
+ && (!profit.possibly_profitable_path_p (m_path, &large_non_fsm)
|| (!large_non_fsm
&& maybe_register_path (profit))))
;
@@ -517,23 +514,19 @@ back_threader::maybe_thread_block (basic_block bb)
return;
enum gimple_code code = gimple_code (stmt);
- tree name;
- if (code == GIMPLE_SWITCH)
- name = gimple_switch_index (as_a <gswitch *> (stmt));
- else if (code == GIMPLE_COND)
- name = gimple_cond_lhs (stmt);
- else
+ if (code != GIMPLE_SWITCH
+ && code != GIMPLE_COND)
return;
m_last_stmt = stmt;
m_visited_bbs.empty ();
m_path.truncate (0);
- m_name = name;
// We compute imports of the path during discovery starting
// just with names used in the conditional.
bitmap_clear (m_imports);
ssa_op_iter iter;
+ tree name;
FOR_EACH_SSA_TREE_OPERAND (name, stmt, iter, SSA_OP_USE)
{
if (!gimple_range_ssa_p (name))
@@ -588,15 +581,12 @@ back_threader::debug ()
*LARGE_NON_FSM whether the thread is too large for a non-FSM thread
but would be OK if we extend the path to cover the loop backedge.
- NAME is the SSA_NAME of the variable we found to have a constant
- value on PATH. If unknown, SSA_NAME is NULL.
-
?? It seems we should be able to loosen some of the restrictions in
this function after loop optimizations have run. */
bool
back_threader_profitability::possibly_profitable_path_p
- (const vec<basic_block> &m_path, tree name,
+ (const vec<basic_block> &m_path,
bool *large_non_fsm)
{
gcc_checking_assert (!m_path.is_empty ());
@@ -645,44 +635,6 @@ back_threader_profitability::possibly_profitable_path_p
if (j < m_path.length () - 1)
{
int orig_n_insns = m_n_insns;
- /* PHIs in the path will create degenerate PHIS in the
- copied path which will then get propagated away, so
- looking at just the duplicate path the PHIs would
- seem unimportant.
-
- But those PHIs, because they're assignments to objects
- typically with lives that exist outside the thread path,
- will tend to generate PHIs (or at least new PHI arguments)
- at points where we leave the thread path and rejoin
- the original blocks. So we do want to account for them.
-
- We ignore virtual PHIs. We also ignore cases where BB
- has a single incoming edge. That's the most common
- degenerate PHI we'll see here. Finally we ignore PHIs
- that are associated with the value we're tracking as
- that object likely dies. */
- if (EDGE_COUNT (bb->succs) > 1 && EDGE_COUNT (bb->preds) > 1)
- {
- for (gphi_iterator gsip = gsi_start_phis (bb);
- !gsi_end_p (gsip);
- gsi_next (&gsip))
- {
- gphi *phi = gsip.phi ();
- tree dst = gimple_phi_result (phi);
-
- /* Note that if both NAME and DST are anonymous
- SSA_NAMEs, then we do not have enough information
- to consider them associated. */
- if (dst != name
- && name
- && TREE_CODE (name) == SSA_NAME
- && (SSA_NAME_VAR (dst) != SSA_NAME_VAR (name)
- || !SSA_NAME_VAR (dst))
- && !virtual_operand_p (dst))
- ++m_n_insns;
- }
- }
-
if (!m_contains_hot_bb && m_speed_p)
m_contains_hot_bb |= optimize_bb_for_speed_p (bb);
for (gsi = gsi_after_labels (bb);
diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
index 0cf6e02..a3e54eb 100644
--- a/gcc/tree-vect-slp.cc
+++ b/gcc/tree-vect-slp.cc
@@ -628,9 +628,13 @@ vect_get_and_check_slp_defs (vec_info *vinfo, unsigned char swap,
{
oprnd = gimple_arg (stmt_info->stmt, opno);
if (gphi *stmt = dyn_cast <gphi *> (stmt_info->stmt))
- backedge = dominated_by_p (CDI_DOMINATORS,
- gimple_phi_arg_edge (stmt, opno)->src,
- gimple_bb (stmt_info->stmt));
+ {
+ edge e = gimple_phi_arg_edge (stmt, opno);
+ backedge = (is_a <bb_vec_info> (vinfo)
+ ? e->flags & EDGE_DFS_BACK
+ : dominated_by_p (CDI_DOMINATORS, e->src,
+ gimple_bb (stmt_info->stmt)));
+ }
}
if (TREE_CODE (oprnd) == VIEW_CONVERT_EXPR)
oprnd = TREE_OPERAND (oprnd, 0);
@@ -7771,7 +7775,11 @@ vect_slp_function (function *fun)
{
bool r = false;
int *rpo = XNEWVEC (int, n_basic_blocks_for_fn (fun));
- unsigned n = pre_and_rev_post_order_compute_fn (fun, NULL, rpo, false);
+ auto_bitmap exit_bbs;
+ bitmap_set_bit (exit_bbs, EXIT_BLOCK);
+ edge entry = single_succ_edge (ENTRY_BLOCK_PTR_FOR_FN (fun));
+ unsigned n = rev_post_order_and_mark_dfs_back_seme (fun, entry, exit_bbs,
+ true, rpo, NULL);
/* For the moment split the function into pieces to avoid making
the iteration on the vector mode moot. Split at points we know